创建一个基于Windows域用户进行身份验证的ASP.NET MVC应用程序很容易.创建一个使用Entity Framework存储的个人帐户也很容易.事实上,两者都有项目模板.
但我想利用BOTH各种认证在同一应用程序.我试图结合两个项目模板的代码.我在Startup.Auth.cs中遇到问题.
// from "Individual Accounts" template
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
});
Run Code Online (Sandbox Code Playgroud)
中间件中存在cookie身份验证似乎导致域身份变为未经身份验证.如果我采用此行,域身份验证将起作用.但没有它,我似乎无法支持个人用户帐户.
我已经下载了katana项目源代码并检查了CookieAuthenticationHandler.cs,但我不太明白它是如何在OWIN管道的上下文中工作的.
如何使用ASP.net身份框架允许我的应用程序从Windows域或特定于应用程序的用户存储中验证用户?
c# asp.net-mvc claims-based-identity asp.net-mvc-5 asp.net-identity
我们已准备好开始将一些IIS6站点迁移到IIS7,并且该应用程序当前使用表单身份验证.我们已经开始从各个站点获取一些请求,以便为用户使用Windows身份验证.虽然这很容易实现(并且我已经在内部展示了应用程序没有问题,正如预期的那样),然后问题是如何在集成Windows不起作用时继续保持表单身份验证.我已经看过几个关于如何在IIS6上配置它的演练,我可以在IIS7上做同样的事情,但后来我必须打开经典模式处理.如果可能,任何解决方案也应该可以移植到IIS6,以保持构建树的简单性.
那么我有什么选择呢?我是否使用IIS7中的集成Windows身份验证,web.config中的Forms Auth设置应用程序,并将401错误重定向到"错误页面",允许他们使用表单登录,然后返回常规应用程序?
可能需要表格的情况将保留给合同工,我们的支持人员,如果有人需要从他们的外部网访问他们的网站.所以主要是我们的员工登录检查功能并确认错误报告.我建议我们只是坚持认为,为了让我们的支持人员工作,我们需要一个永远存在的Windows登录,然后我们将对谁可以登录该网站强制执行当地责任,但我被告知我们会这样做最好有表单身份验证.
有什么想法吗?我可以发布我已经阅读的文章的一些链接,如果这有助于论坛更好地缩小我的需求.
tl; dr:如何在IIS7中进行混合模式身份验证(窗体,窗口),而无需更改为经典管道,并且如果可能,仍然可以在IIS6中使用构建.
我有一个标准的ASP.NET网站,部署到我们的开发机器(我们服务器机房的内部机器).
现在,INTERNAL和EXTERNAL用户都可以访问此开发站点.现在,在IIS6中,我们曾经拥有它,以便关闭匿名身份验证并打开其他内容.为用户提供用户名和密码的弹出模型框.我认为他们必须输入web.config文件中定义的一些用户名或密码?(不是他们的网站帐户用户名/密码)/
现在,使用IIS7,当我关闭Anon Auth,打开Basic或Windows Auth时,我可以访问该站点,但它试图使用这些凭据登录我...而不是用户注册的帐户(使用一些股票标准asp.net webform页面).
所以...是否可以"锁定"整个网站并让测试人员获得对网站的一般访问权限......这与他们的网站用户名和密码不同.这些用户名和密码将在网站中使用.
那有意义吗?
干杯!
<authentication mode="Forms">
<forms loginUrl="~/Pages/Login.aspx" protection="Validation" timeout="1000000000" requireSSL="false" slidingExpiration="true" defaultUrl="Default.aspx">
</forms>
</authentication>
Run Code Online (Sandbox Code Playgroud)
没有授权部分.
另外,当我向iis7添加'Digest Auth'并启用它(并禁用其他所有其他)时,我会弹出窗口(kewl!)但是我不确定我需要传递哪些凭据.我在哪里可以定义那些手动凭证(因此它们与网站的用户分开)??
authentication iis-7 windows-authentication http-authentication basic-authentication