在Windows 7 Utilmate下的IIS 7.5中,我有一个配置为进行身份验证的应用程序,如下所示: 匿名&视窗
在ASP.NET网站中,我已经转换了Forms身份验证和身份impersonate = true 我也否认任何匿名用户。
<authentication mode="Forms">
</authentication>
<identity impersonate="true"/>
<authorization>
<deny user="?">
</authorization>
IIS抱怨。我究竟做错了什么... 我想要实现的目标:我想要Windows登录用户,这样我就可以构建一个FormsAuthentication票证并将其传递给被动STS。 所以在IIS中我有匿名和Windows ...如果只勾选窗口,我不能进入Login.aspx页面,因为我有一个额外的参数从那里传递。 所以现在在webconfig中,我通过说deny user =“?”来禁用匿名用户。 ,所以它留给我认证的Windows用户,但使用表单身份验证。你知道我的意思??
http://msdn.microsoft.com/en-us/library/ff649264.aspx
如果你看到表4 IIS集成Windows for IIS然后Web.config设置第3行,相应WindowsIdentity是Domian \ Username。它适用于IIS 6.0 win2003 / IIS 5.1 XP下
答案 0 :(得分:0)
如果这是一个利用基于声明的身份的应用程序,那么对用户进行身份验证的责任在于STS本身,而不是在应用程序中。
如果您将(网络)应用程序配置为信任外部STS,那么您的身份验证模式将为“无”,并且您在配置文件中有一个完整的部分“ Microsoft.identityModel 强>”。然后,您将在那里配置STS地址(颁发者属性)。像这样:
<microsoft.identityModel>
<service>
<audienceUris>
<add value="https://aexpense-dev.adatum.com/" />
</audienceUris>
<federatedAuthentication>
<wsFederation passiveRedirectEnabled="true" issuer="https://localhost/Adatum.SimulatedIssuer/" realm="https://aexpense-dev.adatum.com/" requireHttps="true" />
<cookieHandler requireSsl="false" />
</federatedAuthentication>
<serviceCertificate>
<certificateReference x509FindType="FindBySubjectDistinguishedName" findValue="CN=localhost"/>
</serviceCertificate>
<certificateValidation certificateValidationMode="None"/>
<applicationService>
<claimTypeRequired>
<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" optional="true" />
</claimTypeRequired>
</applicationService>
<issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<trustedIssuers>
<add thumbprint="f260042d59e14937984c6183fbc6bfc71baf5462" name="https://localhost/Adatum.SimulatedIssuer/" />
</trustedIssuers>
</issuerNameRegistry>
</service>
STS本身可能使用Forms身份验证或其他方式,具体取决于实现。