2012-01-26 10 views
0

です。私がwwwを使って自分のサイトにアクセスした場合、接頭辞、ログインしてからwwwを追加すると、私のユーザーはもうログインしませんが、www。を削除すると、ユーザーはログインします。 www。でログインし、wwwを削除してください。ユーザーはログインしません。WWWでログインしていないユーザー。 URLは

ここでは、ログイン方法とweb.configでの認証方法について説明します。

public static void LogIn(userId) 
{ 
    Item user = Framework.Business.Item.Load(userId); 

    var _ticket = new FormsAuthenticationTicket(1, _usrItm.ID, DateTime.Now, DateTime.Now.AddDays(30), true, _usrItm.ID); 

    string encTicket = FormsAuthentication.Encrypt(_ticket); 
    HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)); 

} 

<authentication mode="Forms"> 
      <forms name="k_Authentication" protection="All" timeout="120" cookieless="UseCookies" loginUrl="default.aspx" path="/" defaultUrl="/myweb.aspx"/>  
</authentication> 
+0

Webサーバーに直接アクセスしていますか、プロキシの背後にあるWebサーバーですか? – capdragon

答えて

3

クッキーのドメイン設定に関する2つの回答が、私の周りの正しい+1であることをギニアに伝えます。

ただし、ほとんどの場合、2つのサイトは同じであるか、そうではありません。そうでない場合は、ユーザーは通常ログインしなくてもらいたいので、何も変更しないでください。それらが同じ場合は、もう一方に永続的にリダイレクトするように1を設定します。この問題を解消するだけでなく、SEOのメリット、人々の履歴レコードの一貫性の向上、共有キャッシュへの負担を軽減します。だから私はそのアプローチを提案するだろう。私は、クッキーに設定されているドメインの問題について、2つが別々のものであり、それらの間のログインを共有することが適切である場合にのみ対処します。

+0

まあ、彼らは同じです。リダイレクトを使用することをお勧めしますか? – ShadowG

+0

@ ShadowGはい。この特定の問題を問題にするのではなく、私が言及した他の利点もあります。彼らは誰もが大騒ぎしているわけではありませんが、彼らはすべてプラスです。クッキーを違うように変更するためにコードを変更するために必要なIISの作業を行うことは少なくありません。 –

+0

Tkxジョン、私はこれが私がしたいことのためのより良い解決策だと思う。 – ShadowG

3

Cookieのドメインに問題がある可能性があります。 www.example.comexample.comは同じドメインではありません。

クッキーを共有するには、Domainプロパティをwww.yourdomain.comに手動で設定する必要があります。

関連する問題