如何自动登录IIS网站?

时间:2017-09-23 12:02:04

标签: asp.net asp.net-mvc asp.net-membership membership

我有一个网站,用户上传大文件。为了保持站点响应,我将上传部分与主要部分分开。现在有两个网站有两个不同的应用程序池,但两个应用程序池都使用相同的用户身份来运行。问题是现在用户必须首先登录主站点,并且为了上传他们必须再次登录! 如何自动登录已登录主站点的用户?

我正在使用ASP.NET MVC,但在Windows Server 2016(IIS 10)上使用旧ASP.NET成员身份,这是我的web.config:

<membership>
  <providers>
    <clear />
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="NewsDb" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="3" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>

1 个答案:

答案 0 :(得分:0)

在不同的网站上分享表单身份验证,您需要确保您的网站在同一主域下,否则您将需要实现大量代码

检查web.config中的<authentication>节点

为您的主网站提供登录页面

<authentication mode="Forms">
<forms loginUrl="login.aspx" name="{your_auth_cookie_name}" timeout="120" slidingExpiration="true" domain=".yourdomain.com"  enableCrossAppRedirects="true"/>
</authentication>

上传网站

<authentication mode="Forms">
<forms loginUrl="https://mainsite/login.aspx" name="{your_auth_cookie_name}" timeout="120" slidingExpiration="true" domain=".yourdomain.com"  enableCrossAppRedirects="true"/>
</authentication>

如果您在不同的服务器上部署了您的网站,您可能需要统一机器密钥以确保auth cookie的解密是正确的