1

これらのいくつかが同じ質問をしているように見えますが、これまでのところどの解決策もうまくいかなかったので、何か間違っているかどうかを確認したかったのです. asp.net MVC を使用して作成しているサイトがあります。現在、フォーム認証を使用して、匿名ユーザーがサイトを閲覧できないようにしています。そのコードは次のとおりです。

<authentication mode="Forms" >
  <forms loginUrl="~/login" timeout="15"/>
</authentication>

次に、ユーザーにuserNameとパスワードを入力させ、情報が正確な場合はauthcookieを作成するログインコントローラーを用意しました。

if (password == encryptedPassword)
{
   FormsAuthentication.SetAuthCookie("user", true, model.userName);
}

これらはすべて Firefox と Chrome で機能し、ユーザーがログインした後、サイトを閲覧できます。ただし、IE では、ユーザーを匿名ユーザーとして認識し続けるため、ログイン画面に戻り続けます。確認したところ、次のページに入るとすぐに Auth Cookie が作成されないか、保持されません。これを修正する試みのいくつかには、web.config で Cookieless を使用することが含まれていました。動作する唯一のものは、実際に Cookie を URI に入れるものであり、サイトに対してそれを使用することはできません。次に、 ticketCompatibilityMode="Framework40" を設定しようとしましたが、そこにも運がありませんでした。

英数字以外の文字を含むドメイン名にバグが見られました。現在、IP を使用してドメインに直接アクセスしているため、この問題が発生するかどうかはわかりませんが、ローカル ホストでさえ同じ問題に悩まされています。任意の入力をいただければ幸いです。

4

1 に答える 1

1

パラメータは次の順序である必要があります。

FormsAuthentication.SetAuthCookie(model.userName, true, ...);

また

FormsAuthentication.SetAuthCookie(model.userName, true);

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.setauthcookie.aspx

于 2013-03-19T19:26:49.320 に答える