GVKun编程网logo

ASP.NET / IIS安全性(Windows身份验证)(iiswindows身份验证在哪打开)

19

在本文中,我们将为您详细介绍ASP.NET/IIS安全性(Windows身份验证)的相关知识,并且为您解答关于iiswindows身份验证在哪打开的疑问,此外,我们还会提供一些关于ASP.NET/II

在本文中,我们将为您详细介绍ASP.NET / IIS安全性(Windows身份验证)的相关知识,并且为您解答关于iiswindows身份验证在哪打开的疑问,此外,我们还会提供一些关于ASP.NET / IIS安全性(Windows身份validation)、ASP.NET Forms身份验证和持久身份验证Cookie安全性、ASP.NET MVC Urls和IIS集成Windows身份验证、asp.net – IIS 7.5中的Windows身份验证因信任关系异常而失败的有用信息。

本文目录一览:

ASP.NET / IIS安全性(Windows身份验证)(iiswindows身份验证在哪打开)

ASP.NET / IIS安全性(Windows身份验证)(iiswindows身份验证在哪打开)

这可能会成为一个doozie.

我正在开发一个ASP.NET应用程序,放在我们公司的Intranet站点上.我已经提交了有关安全性的规范,并且不知道如何做到这一点.

第一部分:应用程序是使用Windows身份验证.这部分似乎很容易;我在管理工具中打开了IIS,右键单击了我的网站节点,属性并选中了“集成Windows身份验证”.但是,我不知道我将如何管理哪些人可以访问我的网站.我认为应该在数据库级别处理这个问题.这是q#1

第二部分 – 我必须为以下场景实现一个过程:用户’Jane’可以登录我们的网络,但没有我的应用程序的权限.用户’Bob’确实有权使用我的应用程序. Bob需要能够坐在Jane的计算机上(在她的网络帐户下),但能够将他的凭据输入我的应用程序并使用它(即使Jane已登录到本地计算机和网络).这是q#2

任何帮助,总体方向或建议将不胜感激.中奖彩票号码将更受欢迎.

谢谢,

贾森

解决方法

您正在寻找ASP.NET中的Windows身份验证和授权

> How To Use Windows Auth in ASP.NET
> Authentication/Authorization Explained
> How To Implement Windows Auth in ASP.NET

第2部分……你是对的,这很难.您需要推出自己的自定义安全提供程序.
您将拥有一个登录页面,然后自行检查Active Directory.从MSDN

ASP.NET also supports custom solutions for using Windows authentication,which bypasses IIS authentication. For example,you can write a custom ISAPI filter that checks the user’s credentials against Active Directory. With this approach you must manually create a WindowsPrincipal object.

ASP.NET / IIS安全性(Windows身份validation)

ASP.NET / IIS安全性(Windows身份validation)

这可能会变成一个doozie。

我正在ASP.NET中开发一个应用程序,放在我们公司的内部网站上。 我已经提交了关于安全性的规范,不知道如何去做。

第一部分:应用程序使用Windows身份validation。 这部分看起来很简单, 我在pipe理工具中打开IIS,右键单击我的网站的属性,属性并选中“集成Windows身份validation”。 但是,我不知道如何pipe理哪些人可以访问我的网站。 我认为这应该在数据库级别照顾。 这是Q#1

第二部分 – 我必须实现以下场景的过程:用户“简”可以login到我们的networking,但没有权利我的应用程序。 用户'鲍勃'有权使用我的应用程序。 Bob需要能够坐在Jane的电脑(在她的networking帐户下),但是能够将他的凭证input到我的应用程序中并使用它(尽pipeJane已经login到本地机器和networking)。 这是Q#2

在Linux上最好的沙盒Apache方法

有没有办法强制Apache返回404而不是403?

确定WindowsIdentity实例的嵌套组

EFS(encryption文件系统):安全问题:硬盘上不存储与密码相关的哈希值

在Multi-Dev的Nginx设置中保护密码

任何帮助,大方向或build议,将不胜感激。 中奖彩票号码将更加赞赏。

谢谢,

贾森

根据LDAPvalidation密码

枚举权限(本地安全策略)

使用JNA通过Java恢复到Windows目录的inheritance

在Rails中,有什么可能导致用户有另一个用户的会话?

Windows Azure是否可以轻松抵御拒绝服务攻击?

您正在寻找ASP.NET中的Windows身份验证和授权

如何在ASP.NET中使用Windows身份验证

认证/授权解释

如何在ASP.NET中实现Windows身份验证

第二部分…你是对的,那很难。 您将需要推出自己的自定义安全提供程序。 您将拥有一个登录页面,然后自己检查Active Directory。 来自MSDN

ASP.NET还支持使用绕过IIS身份验证的Windows身份验证的自定义解决方案。 例如,您可以编写一个自定义的ISAPI筛选器,以根据Active Directory检查用户的凭据。 用这种方法你必须手动创建一个WindowsPrincipal对象。

你在这里有认证授权的要求。

认证 :确认身份的行为

授权 :将身份与特权相关联的行为(例如,读取/写入/删除)

如果您想要“自动注册”功能,Windows身份验证非常有用。 该网站将通过ID“认识”用户而不必登录。

用户需要从多个位置登录意味着您必须实现一个登录页面。 这将满足您的要求,其中一个用户可以坐在另一个工作站上登录。

您将需要根据Windows域对用户进行身份验证。 这可以使用自定义成员资格提供程序完成。 这是一个演练:

http://msdn.microsoft.com/en-us/library/ms180890(v=vs.80).aspx

这将允许您提供一个登录页面,用他们的域名和密码验证用户身份。 这将验证用户身份的用户将存储在HttpContext.User 。 您也可以在数据库中维护一个用户列表来存储授权数据。

也发现这个 – 对于那些在同一条船上的人来说,这是一个相当不错的资源:

在ASP.NET中混合形式和Windows安全性

http://msdn.microsoft.com/en-us/library/ms972958.aspx

ASP.NET Forms身份验证和持久身份验证Cookie安全性

ASP.NET Forms身份验证和持久身份验证Cookie安全性

当我们在任何ASP.NET框架(ASP.NET MVC,Web窗体等)中使用ASP.NET Forms Authentication时,我们会在客户端的浏览器中保留身份验证cookie.作为最佳实践,我们将cookie设置为HttpOnly并且安全.我们还通过SSL进行所有交易.无论我们使用何种机制来验证用户(OAuth,ASP.NET成员资格提供程序等),我们仍然需要保持身份验证以获得更好的用户体验.

有了所有这些,我假设有人仍然可以从客户端浏览器中获取cookie并使用这些auth cookie值发出请求.服务器无法检测到这种情况,我们会将受保护的数据提供给其他人.

有人认为我想降低这里的风险是每当他/她试图采取一些严肃的行动(例如更改电子邮件地址,访问个人资料信息等)时询问客户的密码,但这并不能解决任何东西,对客户来说都很烦人.

对于这类问题,您有任何积极关注的方法吗?或者在客户端浏览器中保持身份验证的最佳方法是什么?

解决方法

你正在做一切正确的事情.

如果您正在使用成员资格提供程序,那么cookie将仅标记为HTTP(如您所述),因此无法通过客户端脚本(如恶意的XSS)访问该cookie.

如果您已将cookie标记为安全,那么我假设您已将表单身份验证中的“RequireSSL”标志设置为true.通过这样做,cookie不会被发送到任何不通过HTTPS发送到服务器的请求,所以即使你不小心插入HTTP请求(浏览器应该警告用户无论如何嵌入的内容一个HTTPS页面),不会发送cookie.

你可以做的唯一的另一件事 – 这并不能提供你所拥有的很多防御,但这是一个很好的做法 – 也是使用HSTS.我在OWASP Top 10 for .NET developers part 9: Insufficient Transport Layer Protection中讨论这个问题,作为确保通过安全通道继续发送请求的另一种方法.

如果没有对会员提供商进行一些严肃的重新设计,那么你可以做的事情真的不多.您可以将会话绑定到IP,如果它发生更改则不接受请求,但这可能会导致问题(即IP会更改并且不会保护您免受同一地址上的多个人的攻击).您还可以创建浏览器的指纹(即在请求标头中发送的所有内容)并确保后续请求匹配,但我们在此处详细介绍.

但最终,安全性应根据其所保护的资产的价值和恶意活动的可能性进行调整.你没有说你正在保护什么,但如果它是一个金融系统,你会比在博客上使用简单的评论引擎更长.

总而言之,看起来你做得很好,只考虑你在所保护的价值背景下实施的措施的适当性.哦 – 如果您使用sql成员资格提供程序进行凭据存储,请确保您阅读Our password hashing has no clothes然后停止这样做!

ASP.NET MVC Urls和IIS集成Windows身份验证

ASP.NET MVC Urls和IIS集成Windows身份验证

我有一个完全支持Forms身份验证的ASP.NET MVC应用程序.但是有一组路由(/ report /%)我需要强制集成 Windows身份验证,因为这些页面需要模拟当前用户(出于安全原因).

如果我将整个站点设置为集成的Windows身份验证,这一切都有效,除了firefox在用户访问站点主页时提示用户输入两次用户名/密码(一次用于Windows身份验证,然后再用于表单身份验证),而IE仅提示表格认证.这很好,我知道这是Firefox的默认行为,但是为了不让用户高兴,我被要求将Windows身份验证要求限制为仅限于网站的/ report / *部分,因此只有在他们转到/ report /%中的任何页面.

在ASP.NET WebForms中这很容易,因为有一个physcial / report文件夹来放置身份验证配置,但在MVC中这个URL是虚拟的,所以我不能这样做.有谁知道这样做的好方法?我试图创建一个“网关”aspx页面,用户在重定向到相应的报告页面之前需要首先完成,虽然Firefox确实在正确的位置提示用户输入他们的Windows凭据,但它似乎没有保留将后续请求的详细信息发送到任何/ report /%页面.有任何想法吗?会非常感激!

解决方法

就在最近,我不得不做类似的事情.我的大部分asp.net MVC应用程序都需要表单身份验证,其中一部分需要Windows身份验证.

我最终做的是将我的Web应用程序拆分为两个项目.

第一个项目托管在IIS下的网站根目录中.这是运行表单身份验证.

第二个项目作为同一网站的虚拟目录托管.这是运行Windows身份验证.

唯一的权衡是,您最终可能会得到/ reports / reports /%的URL(或者您为虚拟目录命名的任何内容)

asp.net – IIS 7.5中的Windows身份验证因信任关系异常而失败

asp.net – IIS 7.5中的Windows身份验证因信任关系异常而失败

我有一个ASP.Net 2.0应用程序,它使用集成的 Windows身份验证来验证/授权用户.该应用程序在Windows XP / IIS 5.1,Windows Server 2008 / IIS 7和Windows Vista / IIS 7上正常工作.当我尝试在Windows 7 / IIS 7.5上运行此应用程序时,我得到以下异常:此之间的信任关系工作站和主域失败.

堆栈跟踪如下:

[SystemException: The trust relationship between this workstation and the primary domain Failed.
]
   System.Security.Principal.NTAccount.TranslatetoSids(IdentityReferenceCollection sourceAccounts,Boolean& someFailed) +1085
   System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts,Type @R_301_3382@,Boolean forceSuccess) +46
   System.Security.Principal.WindowsPrincipal.IsInRole(String role) +128
   System.Web.Configuration.AuthorizationRule.IsTheUserInAnyRole(StringCollection roles,IPrincipal principal) +229
   System.Web.Configuration.AuthorizationRule.IsUserAllowed(IPrincipal user,String verb) +354
   System.Web.Configuration.AuthorizationRuleCollection.IsUserAllowed(IPrincipal user,String verb) +245
   System.Web.Security.UrlAuthorizationModule.OnEnter(Object source,EventArgs eventArgs) +11153304
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously) +171

web.config文件包含与身份验证/授权相关的以下信息:

<authentication mode="Windows" />
<authorization&gt
  <!--Deny anonymous users--&gt
  <deny users="?"/&gt
  <allow roles="domain\GroupWithAccess"/&gt
  <deny users="*"/&gt
</authorization&gt

我在研究此错误时发现的大多数结果表明问题与域中的计算机帐户损坏有关,并将解决方案列为重新加入域.我已经这样做但错误仍然出现. “正常”域操作正常(访问UNC共享,登录等).

出于兼容性原因,此应用程序在Classic .Net AppPool中运行.我尝试将AppPool的身份更改为“NetworkService”,但错误仍然存​​在.

任何帮助是极大的赞赏.

解决方法

在Windows Server 2008 R2上遇到同样的问题后,我终于找到了答案.从 this article开始:

disable the following policies on the Windows 2008 R2 server,run gpupdate /force and restart the server.

“Computer Configuration\Windows Setting\Security Settings\Local Policies\Security Option”

Domain Member: Digitally encrypt or sign secure channel data (always)
Domain Member: Digitally encrypt secure channel data (When possible)
Domain Member: Digitally sign secure channel data (When possible)

我可以确认这也解决了Windows 7上的问题.

我们今天的关于ASP.NET / IIS安全性(Windows身份验证)iiswindows身份验证在哪打开的分享就到这里,谢谢您的阅读,如果想了解更多关于ASP.NET / IIS安全性(Windows身份validation)、ASP.NET Forms身份验证和持久身份验证Cookie安全性、ASP.NET MVC Urls和IIS集成Windows身份验证、asp.net – IIS 7.5中的Windows身份验证因信任关系异常而失败的相关信息,可以在本站进行搜索。

本文标签: