首页 > 解决方案 > 在 Windows 身份验证中,如果在 http://abc.localhost/myweb/ 等 URL 中使用子域(abc),如何允许用户

问题描述

在没有子域的 Windows 身份验证中,http://localhost/myweb/它在成功显示应用程序页面后询问用户名/密码。

但是当我使用子域运行时,http://abc.localhost/myweb/ 它没有获取登录凭据,它给出了未经授权的访问错误。我需要做哪些改变来克服这个问题。

我尝试的是:在Web.config我更改了允许用户*和拒绝用户?但它不起作用

标签: c#asp.net

解决方案


这是因为 cookie 是变化的,并且取决于子域和域 - 要使其保持相同的 cookie,您必须domain在身份验证行和 cookie 上定义参数web.config

你必须定义它的行是......

<authentication mode="Forms">
  <forms domain="domain.com"  .... />
</authentication>
<roleManager domain="domain.com" >
     .... other lines .....
</roleManager>
<httpCookies domain="domain.com" .... />

在没有子域的情况下设置正确的域,您可以在子域上拥有相同的经过身份验证的 cookie

其他类似问题:使用相同登录数据库的多个应用程序相互注销


推荐阅读