我们在两台Web服务器上设置了负载均衡,然而,当一些用户被重新定向到特定服务器上传文档时,他们被要求登录(我们正试图保留所有上传的文件)仅限一台服务器),这是来自web.config的代码:
<authentication mode="Forms">
<forms name="EAAAuthCookie"
loginUrl="/login"
defaultUrl="/members/home"
protection="All"
path="/"
timeout="60000"
slidingExpiration="true"
enableCrossAppRedirects="true" />
</authentication>
<machineKey
decryption="AES"
validation="SHA1"
decryptionKey="key"
validationKey="key" />
以下是上传表单的转移代码:
$('#addReport').click(function() {
if ($.cookie('TransferURL') != '')
{
$("#iframeUploadReport").attr('src', $.cookie('TransferURL'));
};
$('#overlay').fadeIn('slow');
});
<script type="text/C#" runat="server">
void Page_Load()
{
string cookieName = FormsAuthentication.FormsCookieName;
string userName = Request.Cookies["HiddenUsername"].ToString();
string cookieValue = FormsAuthentication.GetAuthCookie(userName, false).Value;
Response.Cookies["TransferURL"].Value = "/members/media-upload" + String.Format("?{0}={1}", cookieName, cookieValue);
}
</script>
<iframe id="iframeUploadReport" src="/members/media-upload" width="500px" height="336px" frameborder="0" scrolling="no"></iframe>
你能看到我们遗失的任何明显的步骤吗?
由于
答案 0 :(得分:2)
请参阅ASP.NET Forms Authentication on Load Balanced Servers。
要使表单身份验证在负载平衡环境中工作,您需要使两个应用程序使用相同的计算机密钥。只需按照链接中的说明操作即可。