Database Administrator
Hardware Engineer
System Analyst
Network Architect
Web Developer
Information Security Analyst
Systems Manager
IT Support
SELECT facid, DATEPART(month, [StartTime]) AS month, sum(slots) AS slots FROM bookings WHERE starttime >= '2012-01-01' AND starttime < '2013-01-01' GROUP BY ROLLUP(facid, DATEPART(month, [StartTime])) ORDER BY facid, month;
var date1 = new DateTime(2012, 01, 01); var date2 = new DateTime(2013, 01, 01); var facilities = context.Bookings .Where(booking => booking.StartTime >= date1 && booking.StartTime < date2) .GroupBy(booking => new { booking.FacId, booking.StartTime.Month }) .Select(group => new { group.Key.FacId, group.Key.Month, TotalSlots = group.Sum(booking => booking.Slots) }) .OrderBy(result => result.FacId) .ThenBy(result => result.Month) .ToList() //This is new .GroupByWithRollup( item => item.FacId, item => item.Month, (primaryGrouping, secondaryGrouping) => new { FacId = primaryGrouping.Key, Month = secondaryGrouping.Key, TotalSlots = secondaryGrouping.Sum(item => item.TotalSlots) }, item => new { FacId = item.Key, Month = -1, TotalSlots = item.SubTotal(subItem => subItem.TotalSlots) }, items => new { FacId = -1, Month = -1, TotalSlots = items.GrandTotal(subItem => subItem.TotalSlots) });
var items = context.Bookings .GroupBy(booking => new { booking.FacId, booking.Facility.Name }) .Select(group => new { group.Key.FacId, group.Key.Name, TotalHours = group.Sum(booking => booking.Slots) / 2M }) .OrderBy(result => result.FacId) .ToList();
var date1 = new DateTime(2012, 09, 01); var items = context.Bookings .Where(booking => booking.StartTime >= date1) .GroupBy(booking => new { booking.Member.Surname, booking.Member.FirstName, booking.Member.MemId }) .Select(group => new { group.Key.Surname, group.Key.FirstName, group.Key.MemId, StartTime = group.Min(booking => booking.StartTime) }) .OrderBy(result => result.MemId) .ToList();
var members = context.Members .OrderBy(member => member.JoinDate) .Select(member => new { Count = context.Members.Count(), member.FirstName, member.Surname }) .ToList();
SELECT COUNT(*) FROM [Members] AS [m]; SELECT [m].[FirstName], [m].[Surname], @__Count_0 AS [Count] FROM [Members] AS [m] ORDER BY [m].[JoinDate];
SELECT row_number() OVER (ORDER BY joindate) AS row_number, firstname, surname FROM members ORDER BY joindate;
var members = context.Members .OrderBy(member => member.JoinDate) .Select(member => new { member.FirstName, member.Surname }) .ToList() /* SELECT [m].[FirstName], [m].[Surname] FROM [Members] AS [m] ORDER BY [m].[JoinDate] */ // Now using LINQ to Objects .Select((member, index) => new { RowNumber = index + 1, member.FirstName, member.Surname }) .ToList();
SELECT facid, total FROM (SELECT facid, sum(slots) AS total, rank() OVER (ORDER BY sum(slots) DESC) AS rank FROM bookings GROUP BY facid) AS ranked WHERE rank = 1;
SELECT mems.firstname, mems.surname, ((sum(bks.slots) + 10) / 20) * 10 AS hours, rank() OVER (ORDER BY ((sum(bks.slots) + 10) / 20) * 10 DESC) AS rank FROM bookings AS bks INNER JOIN members AS mems ON bks.memid = mems.memid GROUP BY mems.firstname, mems.surname ORDER BY rank, mems.surname, mems.firstname;
var itemsQuery = context.Bookings .GroupBy(booking => new { booking.Member.FirstName, booking.Member.Surname }) .Select(group => new { group.Key.FirstName, group.Key.Surname, Hours = (group.Sum(booking => booking.Slots) + 10) / 20 * 10 }) .OrderByDescending(result => result.Hours) .ThenBy(result => result.Surname) .ThenBy(result => result.FirstName); var rankedItems = itemsQuery.Select(thisItem => new { thisItem.FirstName, thisItem.Surname, thisItem.Hours, Rank = itemsQuery.Count(mainItem => mainItem.Hours > thisItem.Hours) + 1 }) .ToList();
var facilitiesQuery = context.Bookings.Select(booking => new { booking.Facility.Name, Revenue = booking.MemId == 0 ? booking.Slots * booking.Facility.GuestCost : booking.Slots * booking.Facility.MemberCost }) .GroupBy(b => b.Name) .Select(group => new { Name = group.Key, TotalRevenue = group.Sum(b => b.Revenue) }) .OrderBy(result => result.TotalRevenue); var rankedFacilities = facilitiesQuery.Select(thisItem => new { thisItem.Name, thisItem.TotalRevenue, Rank = facilitiesQuery.Count(mainItem => mainItem.TotalRevenue > thisItem.TotalRevenue) + 1 }) .Where(result => result.Rank <= 3) .OrderBy(result => result.Rank) .ToList();
SELECT name, CASE WHEN class = 1 THEN 'high' WHEN class = 2 THEN 'average' ELSE 'low' END AS revenue FROM (SELECT facs.name AS name, ntile(3) OVER (ORDER BY sum(CASE WHEN memid = 0 THEN slots * facs.guestcost ELSE slots * membercost END) DESC) AS class FROM bookings AS bks INNER JOIN facilities AS facs ON bks.facid = facs.facid GROUP BY facs.name) AS subq ORDER BY class, name;
var facilities = context.Bookings.Select(booking => new { booking.Facility.Name, Revenue = booking.MemId == 0 ? booking.Slots * booking.Facility.GuestCost : booking.Slots * booking.Facility.MemberCost }) .GroupBy(b => b.Name) .Select(group => new { Name = group.Key, TotalRevenue = group.Sum(b => b.Revenue) }) .OrderByDescending(result => result.TotalRevenue) .ToList();
SELECT [f].[Name], SUM(CASE WHEN [b].[MemId] = 0 THEN CAST ([b].[Slots] AS DECIMAL (18, 6)) * [f].[GuestCost] ELSE CAST ([b].[Slots] AS DECIMAL (18, 6)) * [f].[MemberCost] END) AS [TotalRevenue] FROM [Bookings] AS [b] INNER JOIN [Facilities] AS [f] ON [b].[FacId] = [f].[FacId] GROUP BY [f].[Name] ORDER BY SUM(CASE WHEN [b].[MemId] = 0 THEN CAST ([b].[Slots] AS DECIMAL (18, 6)) * [f].[GuestCost] ELSE CAST ([b].[Slots] AS DECIMAL (18, 6)) * [f].[MemberCost] END) DESC;
var n = 3; var tiledFacilities = facilities.Select((item, index) => new { Item = item, Index = (index / n) + 1 }) .GroupBy(x => x.Index) .Select(g => g.Select(z => new { z.Item.Name, z.Item.TotalRevenue, Tile = g.Key, GroupName = g.Key == 1 ? "High" : (g.Key == 2 ? "Average" : "Low") }) .OrderBy(x => x.GroupName) .ThenBy(x => x.Name) ) .ToList(); var flatTiledFacilities = tiledFacilities.SelectMany(group => group) .Select(tile => new { tile.Name, Revenue = tile.GroupName }) .ToList();
var facilities = context.Bookings.Select(booking => new { booking.Facility.Name, booking.Facility.InitialOutlay, booking.Facility.MonthlyMaintenance, Revenue = booking.MemId == 0 ? booking.Slots * booking.Facility.GuestCost : booking.Slots * booking.Facility.MemberCost }) .GroupBy(b => new { b.Name, b.InitialOutlay, b.MonthlyMaintenance }) .Select(group => new { group.Key.Name, RepayTime = group.Key.InitialOutlay / ((group.Sum(b => b.Revenue) / 3) - group.Key.MonthlyMaintenance) }) .OrderBy(result => result.Name) .ToList();
var startDate = new DateTime(2012, 08, 1); var endDate = new DateTime(2012, 08, 31); var period = 14; var dailyRevenueQuery = context.Bookings .Select(booking => new { StartDate = booking.StartTime.Date, // How to group by date (or TruncateTime) in EF-Core Revenue = booking.MemId == 0 ? booking.Slots * booking.Facility.GuestCost : booking.Slots * booking.Facility.MemberCost }) .GroupBy(b => b.StartDate) .Select(group => new { Date = group.Key, TotalRevenue = group.Sum(b => b.Revenue) });
var movingAvgs = dailyRevenueQuery .Select(dr1 => new { dr1.Date, MovingAvg = dailyRevenueQuery .Where(dr2 => dr2.Date <= dr1.Date && dr2.Date >= dr1.Date.AddDays(-period)) .Average(dr2 => dr2.TotalRevenue) }) .Where(result => result.Date >= startDate && result.Date <= endDate) .OrderBy(result => result.Date) .ToList();
- Creating an IdentityServer 5 Project
- Adding JWT Bearer Authentication to an ASP.NET Core 5 API
- Adding Policy-Based Authorisation to an ASP.NET Core 5 API
- Authenticating a .NET 5 Console Application using IdentityServer 5
- Adding API Resources to IdentityServer 5
- Containerising a PostgreSQL 13 Database
- Adding Entity Framework Core 5 to IdentityServer 5
- Adding an OAuth 2.0 Security Scheme to an ASP.NET Core 5 API
- Adding ASP.NET Core 5 Identity to IdentityServer 5
- Seeding an ASP.NET Core 5 Identity Database with Users
- Authenticating an ASP.NET Core 5 Web Application using IdentityServer 5
- Authenticating an Angular 11 Single-Page Application using IdentityServer 5
- Authenticating a Flutter Android Application using IdentityServer 5
- Containerising an IdentityServer 5 Project
- Containerising an IdentityServer 5 Project with API Resources and Clients
These are the customer-reported issues addressed in 15.9.12:
update-package T4MVC -Reinstall -ProjectName Decision.Web update-package Microsoft.AspNet.Mvc -ProjectName Decision.Web update-package Microsoft.Web.Infrastructure -ProjectName Decision.Web Install-Package RazorGenerator.Mvc Enable-RazorGenerator Redo-RazorGenerator
منوی intellisense برای T4MVC در کنترولر و ویو قابل دسترسی است با راست کلیک و اجرای Run custom tool همچنان پیام Security Warning را دریافت میکنم با ok (البته اینبار خطاها از بین رفتند) و اکشنها بصورت virtual تغییر میکنند ولی خطای
Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or
one of its dependencies) could have been removed, had its name changed, or is
temporarily unavailable. Please review the following URL and make sure
that it is spelled correctly.
Requested URL: /Home/Index2
برای اکشن index2 دریافت میکنم . Build solution هم فراموش نشده بقیه اکشنهای پروژه بدرستی کار میکنند و حتی امکان سفارشی سازی آنها هست فقط اکشنهای جدید با خطای بالا مواجه میشند .
Cannot open database "DecisionDB" requested by the login. The login failed. Login failed for user 'xxxxx'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Line 172: Line 173: foreach (var role in from record in standardRoles Line 174: let role = this.FindByName(record.RoleName) Line 175: where role == null Line 176: select new Role Source File: C:\Users\Majid\Desktop\Decision-master\src\Decision.ServiceLayer\EFServiecs\Users\ApplicationRoleManager.cs Line: 174
<add name="DefaultConnection" connectionString="Data Source=.;Initial Catalog=DecisionDB;Integrated Security = true" providerName="System.Data.SqlClient"/>
در این قسمت بیشتر یک سری از ماژولها را به شما در قالب جداول گروه بندی شده معرفی خواهیم کرد :
همانطور که در قسمتهای قبلی گفتیم سرور IIS آماده خصوصی سازی و کار بر اساس علائق شماست؛ ولی توجه داشته باشید حذف تمامی ماژولها ممکن است اثرات جانبی هم داشته باشد. در اینجا ما ماژول هایی را به شما معرفی میکنیم که بدانید کار هر ماژول چیست تا مثلا با حذف ماژولی، امنیت وب سایت خود را به خطر نیندازید :
ماژولهای سودمند یا utility
نام ماژول: | UriCacheModule |
توضیح: | این ماژول نوعی کش برای URLها به شمار میرود. موقعی که url درخواست میشود، اطلاعات در اولین درخواست خوانده شده و کش میشود و اگر دوباره همان url درخواست شود، بدون خواندن تنظیمات و بر اساس تنظیمات قبلی، کار url مربوطه را انجام میدهد تا اطلاعات پیکربندی تغییر کند و بر اساس اطلاعات جدید، خود را به روز کند. |
تگ قابل پیکربندی: | لازم ندارد |
وابستگی: | ندارد |
اثرات حذف آن: | کارایی سیستم کاهش مییابد و سیستم مجبور است برای هر درخواست فایل پیکربندی را بخواند. |
نام ماژول : | FileCacheModule |
توضیح : | فایل هندلِ فایلهایی که قبلا در سرور باز شدهاند را کش میکند تا در صورت نیاز در دفعات بعدی سریعتر عمل کند. |
تگ قابل پیکربندی : | لازم ندارد . |
وابستگی : | ندارد. |
اثرات حذف آن : | کارایی سیستم کاهش مییابد. سیستم در هر اجرای دستور مربوط به فایلها باید فایل هندل را به دست آورد. |
نام ماژول : | TokenCacheModule |
توضیح : | توکنهای امنیتی ویندوز که پسوردهایی بر اساس authentication schemes هستند را کش میکند (anonymous authentication, basic authentication, IIS client certificate authentication ) |
تگ قابل پیکربندی : | لازم ندارد |
وابستگی : | ندارد |
اثرات حذف آن : | کارایی سیستم به شدت پایین میآید. کاربر باید با هر درخواستی لاگین کند. یکی از اصلیترین ضربهها با حذف این ماژول این است که اگر مثلا یک پسورد از یک فایل html محافظت میکند و این صفحه به 50 تصویر ارجاع دارد، 51 بار باید درخواست لاگین اجرا گردد یا شاید هم بدتر |
MANAGED ENGINE: ASP.NET INTEGRATION
نام ماژول : | ManagedEngine |
توضیح : | مدیریت ماژولهای native و مدیریت شده |
تگ قابل پیکربندی : | |
وابستگی : | ندارد |
اثرات حذف آن : | مشخصا غیرفعال شدن asp.net integrated و غیر فعال شدن تمامی ماژولها و هندلرهای تگ وب کانفیگ یا داخل فایل کانفیگ IIS که در مقالات قبلی به تفصیل بیان کردهایم. |
IIS 7 NATIVE MODULES
نام ماژول : | HttpCacheModule |
توضیح : | مدیریت کش خروجی در htttp.sys بر اساس پیکربندی مثل تعریف سایز کش و ... |
تگ قابل پیکربندی : | System.webServer/caching |
وابستگی : | ندارد. |
اثرات حذف آن : | محتوا دیگر به صورت کرنل مد، کش نمیشود و کش پروفایل هم ندید گرفته میشود و احتمالا بر کارآیی و استفاده از منابع هم اثر میگذارد. |
نام ماژول : | DynamicCompressionModule |
توضیح : | پیاده سازی in-memory compression در محتوای پویا |
تگ قابل پیکربندی : | system.webServer/httpCompression and system.webServer/urlCompression. |
وابستگی : | وابستگی ندارد چرا که به طور پیش فرض غیرفعال است. |
نام ماژول : | StaticCompressionModule |
توضیح : | پیادسازی فشرده سازی در محتوای ایستا و برای فایلهای سیستمی از نوع in memory |
تگ قابل پیکربندی : | system.webServer/httpCompression and system.webServer/urlCompression |
وابستگی : | ندارد. |
اثرات حذف آن : | در صورت عدم فشرده سازی بر مصرف ترافیک تاثیر گذار است. |
نام ماژول : | DefaultDocumentModule |
توضیح : | پیاده سازی یک لیست سند پیش فرض. درخواستها مدام پشت سر هم میآیند و این درخواستهای پشت سرهم، به سند پیش فرض هدایت میشوند. همان پنجره ای که شما به ترتیب فایلهای index.htm,index.asp,default.aspx و... را تعیین میکنید. |
تگ قابل پیکربندی : | system.webServer/defaultDocument |
وابستگی : | ندارد. |
اثرات حذف آن : | درخواست را به ریشه هدایت میکند. مثلا برای localhost صفحه 404 باز میگرداند و اگر directoryBrowsing فعال باشد لیستی از دایرکتوری ریشه را باز میگرداند. |
نام ماژول : | DirectoryListingModule |
توضیح : | پیادی سازی لیستی از محتویات یک دایرکتوری |
تگ قابل پیکربندی : | system.webServer/directoryBrowse |
وابستگی : | ندارد. |
اثرات حذف آن : | اگر این ماژول و ماژول قبلی غیرفعال باشند response نهایی خالی است. |
نام ماژول : | ProtocolSupportModule |
توضیح : | پیاده سازی اختصاصی از response header پیاده سازی تنظیمات trace و HTTP verbs. پیاده سازی تنظیمات مربوطه به keep-alive بر اساس پیکربندی |
تگ قابل پیکربندی : | system.webServer/httpProtocol |
وابستگی : | ندارد. |
اثرات حذف آن : | بازگرداندن پیام خطای "405 Method not allowed". |
نام ماژول : | HttpRedirectionModule |
توضیح : | پیاده سازی عملیات انتقال یا redirect |
تگ قابل پیکربندی : | system.webServer/httpRedirect |
وابستگی : | ندارد. |
اثرات حذف آن : | خطر امنیتی: اگر منابعی با redirect کردن محافظت میشوند، از این پس در دسترسند. |
نام ماژول : | ServerSideIncludeModule |
توضیح : | حمایت از فایل shtm یا shtml و ... |
تگ قابل پیکربندی : | system.webServer/serverSideInclude |
وابستگی : | ندارد. |
اثرات حذف آن : | این فایلها به صورت متنی نمایش داده میشوند |
نام ماژول : | StaticFileModule |
توضیح : | فایلهای ایستا را به همراه پسوند ارسال میکند. مثل jpg,html و نوع محتوا را بر اساس staticContent/mimeMap پیکربندی میکند. |
تگ قابل پیکربندی : | system.webServer/staticContent |
وابستگی : | ندارد. |
اثرات حذف آن : | فایلهای ایستا دیگر ارائه نشده و به جای آن خطای 404 بازگشت داده میشود. |
نام ماژول : | AnonymousAuthenticationModule |
توضیح : | پیاده سازی سیستم شناسایی افراد ناشناس. همانطور که میدانید در یک وب سایت حداقل محتوایی برای افرادی بدون داشتن اکانت هم وجود دارد. برای اینکار یک شیء httpuser ایجاد میکند. |
تگ قابل پیکربندی : | system.webServer/security/authentication/anonymousAuthentication |
وابستگی : | ندارد. |
اثرات حذف آن : | حداقل باید یک سیستم امنیتی برای شناسایی یا authenticate وجود داشته باشد. httpuser یک ساختار داده ای در IIS میباشد و در صورت نبودن هیچ سیستم شناسایی وجود نداشته و در نبود شیء httpuser سیستم خطای 401.2 را تولید میکند. |
نام ماژول : | CertificateMappingAuthenticationModule |
توضیح : | مجوز SSL را به Active Directory نگاشت میکند. |
تگ قابل پیکربندی : | system.webServer/security/authentication/clientCertificateMappingAuthentication |
وابستگی : | برای اینکه این ماژول وظیفه خود را انجام دهد باید تنظیمات SSL انجام شود و همچنین سیستم IIS جزئی از دامنه Active directory باشد |
اثرات حذف آن : | درخواستها، نرمال رسیدگی میشوند انگار SSL وجود ندارد. |
نام ماژول : | BasicAuthenticationModule |
توضیح : | پیاده سازی پایهای و روتین شناسایی کاربران بر اساس آن چیزی که در استانداد زیر آمده است |
تگ قابل پیکربندی : | system.webServer/security/authentication/basicAuthentication |
وابستگی : | None. |
اثرات حذف آن : | حداقل باید یک سیستم امنیتی برای شناساسایی یا authenticate وجود داشته باشد. httpuser یک ساختار دادهای در IIS میباشد و در صورت نبود، هیچ سیستم شناسایی یافت نشده و نبود شیء httpuser در سیستم، خطای 401.2 را تولید میکند. |
نام ماژول : | WindowsAuthenticationModule |
توضیح : | ((windows Authentication (NTLM or Negotiate (Kerberos |
تگ قابل پیکربندی : | system.webServer/security/authentication/windowsAuthentication |
وابستگی : | ندارد. |
اثرات حذف آن : | حداقل باید یک سیستم امنیتی برای شناسایی یا authenticate وجود داشته باشد. httpuser یک ساختار داده ای در IIS میباشد و در صورت نبود، هیچ سیستم شناسایی یافت نشده و نبود شیء httpuser در سیستم، خطای 401.2 را تولید میکند. |
نام ماژول : | DigestAuthenticationModule |
توضیح : | پیاده سازی سیستم شناسایی دیاجست بر اساس RFC 2617 . |
تگ قابل پیکربندی : | system.webServer/security/authentication/digestAuthentication |
وابستگی : | IIS باید بخشی از دامنه Active Directory باشد. |
اثرات حذف آن : | حداقل باید یک سیستم امنیتی برای شناسایی یا authenticate وجود داشته باشد.
httpuser یک ساختار داده ای در IIS میباشد و در صورت نبود، هیچ سیستم
شناسایی یافت نشده و نبود شیء httpuser در سیستم، خطای 401.2 را تولید
میکند. |
نام ماژول : | IISCertificateMappingAuthenticationModule |
توضیح : | پیاده سازی نگاشت مجوزهای IIS، نگهداری و ذخیره اطلاعات همه نگاشتها و مجوزهای کاربری چون SSL client certificates |
تگ قابل پیکربندی : | system.webServer/iisClientCertificateMappingAuthentication |
وابستگی : | اطلاعات SSL به همراه دریافت client certificates جهت پیکربندی این ماژول |
اثرات حذف آن : | حداقل باید یک سیستم امنیتی برای شناسایی یا authenticate وجود داشته باشد.
httpuser یک ساختار داده ای در IIS میباشد و در صورت نبود، هیچ سیستم
شناسایی یافت نشده و نبود شیء httpuser در سیستم، خطای 401.2 را تولید
میکند. |
نام ماژول : | UrlAuthorizationModule |
توضیح : | پیاده سازی authorization بر اساس قوانین پیکربندی شده |
تگ قابل پیکربندی : | system.webServer/security/authorization |
وابستگی : | ندارد. |
اثرات حذف آن : | محتواهای محافظت شده توسط authorization دیگر محافظت نمیشوند. |
نام ماژول : | IsapiModule |
توضیح : | پیاده سازی ISAPI Extension |
تگ قابل پیکربندی : | system.webServer/isapiCgiRestriction |
وابستگی : | ندارد. |
اثرات حذف آن : | هندلرهای معرفی شده در بخش IsapiModule و تگ handlers دیگر اجرا نمیشوند |
نام ماژول : | IsapiFilterModule |
توضیح : | پیاده سازی ISAPI filter |
تگ قابل پیکربندی : | system.webServer/isapiFilters |
وابستگی : | ندارد. |
اثرات حذف آن : | اگر برنامه ای از ISAPI filter استفاده میکند، در اجرا دچار مشکل خواهد شد. |
نام ماژول : | IpRestrictionModule |
توضیح : | یک سیستم تشخیص دسترسی بر اساس آی پیهای ورژن4 |
تگ قابل پیکربندی : | system.webServer/security/ipSecurity |
وابستگی : | IPv4 stack باید نصب شود. |
اثرات حذف آن : | کلاینت هایی که IP هایشان در IPsecurity لیست شدهاند ندید گرفته میشوند |
نام ماژول : | RequestFilteringModule |
توضیح : | پیاده سازی یک مجموعه قدرتمند از قوانین امنیتی که درخواستهای مشکوک را پس میزند. |
تگ قابل پیکربندی : | system.webServer/security/requestFiltering |
وابستگی : | ندارد. |
اثرات حذف آن : | دیگر قوانین امنیتی اجرا نخواهند شد و سبب وجود مشکلات امنیتی میشود. |
نام ماژول : | CustomLoggingModule |
توضیح : | پیاده سازی اینترفیس ILogPlugin در سمت IIS، به مشتریان اجازه میدهد تا لاگهای خود را توسعه دهند. هر چند این روش توصیه نمیشود و توصیه کارشناس مایکروسافت استفاده از یک ماژول دست نویس از نوع RQ_LOG_REQUEST می باشد. Implements the ILogPlugin interface on top of IIS. ILogPlugin is a previous COM implementation that allowed customers to extend IIS logging. We do not not recommend extending IIS using this interface. Instead, customers should write a module and subscribe to the RQ_LOG_REQUEST notification. |
تگ قابل پیکربندی : | system.webServer/httpLogging and system.applicationhost/sites/site/logFile/customLogPluginClsid |
وابستگی : | ندارد. |
اثرات حذف آن : | مسلما پلاگینهایهای این اینترفیس از کار میافتند که سیستم ODBC Logging هم جز آن است. |
نام ماژول : | CustomErrorModule |
توضیح : | پیاده سازی مدیریت خطاهای ویژه |
تگ قابل پیکبرندی : | system.webServer/httpErrors |
وابستگی : | None. |
اثرات حذف آن : | در صورتی که خطایی از هسته باشد، نتیجه یک صفحه، با توضیح مختصری از خطا خواهد بود. در غیر این صورت اگر خطا از برنامه یا کامپوننتی باشد جزئیات خطا فاش خواهد شد |
نام ماژول : | HttpLoggingModule |
توضیح : | پیاده سازی سیستم logging استاندارد http.sys |
تگ قابل پیکربندی : | system.applicationHost/log and system.webServer/httpLogging |
وابستگی : | ندارد. |
اثرات حذف آن : | از کار افتادن سیستم لاگ |
نام ماژول : | FailedRequestsTracingModule |
توضیح : | پیاده سازی سیستم ردیابی درخواستهای ناموفق و اجرای قوانین، طبق پیکربندی |
تگ قابل پیکربندی : | system.webServer/tracing and system.webServer/httpTracing |
وابستگی : | ندارد. |
اثرات حذف آن : | Tracing http requests will no longer work. |
نام ماژول : | RequestMonitorModule |
توضیح : | پیاده سازی IIS Run-time State and Control Interface یا به اختصار RSCA . به کاربران اجازه میدهد از اطلاعات، حین اجرا، کوئری بگیرند. مثل درخواست درحال اجرای جاری، آغاز به کار یا توقف وب سایت و دامنههای اپلیکیشن در حال اجرای جاری |
تگ قابل پیکربندی : | ندارد. |
وابستگی : | ندارد. |
اثرات حذف آن : | ابزارهای مرتبط با این موضوع از کار میافتند |
نام ماژول : | CgiModule |
توضیح : | پیاده سازی CGI در سمت IIS |
تگ قابل پیکبرندی : | system.webServer/cgi and system.webServer/isapiCgiRestriction |
وابستگی : | ندارد. |
اثرات حذف آن : | برنامههای CGI متوقف میشوند |
نام ماژول : | TracingModule |
توضیح : | پیاده سازی سیستم ردیابی ETW |
تگ قابل پیکربندی : | system.webServer/httpTracing |
وابستگی : | ندارد. |
اثرات حذف آن : | باعث از کار افتادن سیستم مربوطه میشود |
نام ماژول : | ConfigurationValidationModule |
توضیح : | اعتبارسنجی تنظیمات برنامه ASP.Net که به حالت integrate انتقال یافته است |
تگ قابل پیکربندی : | system.webServer/Validation |
وابستگی : | ندارد. |
اثرات حذف آن : | عدم اعتبارسنجی و در نتیجه عدم نمایش خطاها |
MANAGED MODULES:
نام ماژول : | OutputCache |
توضیح : | پیاده سازی output caching |
تگ قابل پیکربندی : | system.web/caching/outputCache |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | عدم اجرای output cache |
نام ماژول : | Session |
توضیح : | مدیریت سشن ها |
تگ قابل پیکربندی : | system.web/sessionState |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | سشنها از دسترس خارج میشوند. |
نام ماژول : | WindowsAuthentication |
توضیح : | |
تگ قابل پیکربندی : | system.web/authentication |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | این حالت قابل اجرا نخواهد بود |
نام ماژول : | FormsAuthentication |
توضیح : | |
تگ قابل پیکربندی : | system.web/authentication |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | این حالت قابل اجرا نیست و کاربران مجوز دار هم نمیتوانند به منابع محافظت شده دسترسی داشته باشند. |
نام ماژول : | DefaultAuthentication |
توضیح : | اطمینان از وجود شی Authentication در context مربوطه |
تگ قابل پیکربندی : | system.web/authentication |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | اگر مد Forms authentication انتخاب شده باشد بر روی بعضی از کاربران ناشناس کار نخواهد کرد و رویداد DefaultAuthentication.OnAuthenticate اجرا نخواهد شد. |
نام ماژول : | RoleManager |
توضیح : | |
تگ قابل پیکربندی : | |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | این قابلیت در دسترس نمیباشد |
نام ماژول : | UrlAuthorization |
توضیح : | |
تگ قابل پیکربندی : | system.web/authorization. |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | باعث از کار افتادن asp.net authorization و فاش شدن بعضی اطلاعات و همچنین دیگر تهدیدات امنیتی |
نام ماژول : | AnonymousIdentification |
توضیح : | |
تگ قابل پیکربندی : | |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | The anonymous identification feature used by the ASP.NET Profile will not work. |
نام ماژول : | Profile |
توضیح : | |
تگ قابل پیکربندی : | |
وابستگی : | ManagedEngine module must be installed. |
اثرات حذف آن : | ASP.Net Profile از کار خواهد افتاد |
نام ماژول : | UrlMappingsModule |
توضیح : | تبدیل یک Url واقعی به یک Url کاربرپسند |
تگ قابل پیکبرندی : | |
وابستگی : | نیاز به ManagedEngine . |
اثرات حذف آن : | نگاشت Urlها صورت نمیگیرد |
در دنیای امروز، امنیت یا Security برای همگان از اهمیت بالایی برخوردار است و لزوم حفظ امنیت بر همگان اثبات شده است.
یک کاربر Github چکلیستی بلند بالا برای حفظ امنیت شخصی در فضای اینترنت منتشر کرده است. این مخزن که به نظر میرسد بسیار بهروز است و به طور مداوم آپدیت میشود شامل حفظ امنیت در سه سطح مختلف و در دستههای زیر میشود:
The Mobile Application Security Verification Standard (MASVS) is a standard for mobile app security
استاندارد امنیتی MASVS شامل موضوعات زیر میباشد :