2012-04-13 12 views
0

ASP.NETプロジェクトに認証フォームを追加しました。メインページ(私の場合はdefault.aspx)はパスワードで保護するべきではありませんので、私は、web.configファイルに次の行を追加:ASP.NET認証でデフォルトページのログインを要求します

<location path="default.aspx"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 

問題は、私はURLを入力すると、言うことですhttp://mywebapp.university.edu/、私はログインページを持っています。確かに、もし私がhttp://mywebapp.university.edu/default.aspxと入力すれば。私はその資格情報を提供することなくページに行きました。 URLに明示的に入力しなくても、default.aspxページが表示されるURLを入力すると、何ができますか?

ありがとうございます!ない彼はLogin pageからredirectedなる場合

+0

IISにアクセスできますか? – Khan

+0

はい私はIISにアクセスできます。 – webyacusa

+0

は、だから私はLogin.aspxのページでこの恐ろしいハックを思い付いた: がvoidをPage_Load(オブジェクト送信者、EventArgsの電子) { 場合(場合、Request.QueryString [ "にreturnurl"] == "/") { を保護しますResponse.Redirect( "default.aspx"); } } これで機能します。もし誰かがこれを修正する方法を知っていれば、私はまだ答えを受け入れます。もちろん、より良い、より洗練されたソリューションが選択された答えとして選ばれます。ありがとう。 – webyacusa

答えて

0

ユーザが直接defaultページに行くたびに、彼はなりますverifieduser.identityを使用。

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (User.Identity.IsAuthenticated) // if the user is already logged in 
    { 
      Response.Redirect("~/Default.aspx"); 
    } 
    else 
    {  
      Response.Redirect("~/Login.aspx"); 
    } 
} 
+0

これはどのように役立つでしょうか? – Khan

+0

@ Jeff-clarficationを入手しました。 – coder

+0

OPは、ユーザーはログインする必要がないと言っています。ユーザーは、必要でないときに資格情報の入力を求められます。 – Khan

0

はIISでは、ログインページ上の

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/dc6eb1b4-9028-4308-9935-52b64edfad36.mspx?mfr=true 

移動アップリンクの下で与えられたDefault.aspxページとしてWebサイトのプロパティにアクセスしてください保存してテスト。

+0

default.aspxは既定のドキュメントの先頭にあります。それが私が最初に試したことでした。提案ありがとう。 – webyacusa

+0

私はこれのようなウェブサイトをセットアップして、それは私のためにうまく動作します。ウェブサイトにリダイレクトURLがあるかどうか確認しましたか? http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/6b855a7a-0884-4508-ba95-079f38c77017.mspx?mfr=true –

+0

web.configまたはコードに書き換えルールが記述されていますか? –

0

だから私はLogin.aspxのページでこの恐ろしいハックを思い付いた:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (Request.QueryString["ReturnUrl"] == "/") 
     { 
      Response.Redirect("default.aspx"); 
     } 
    } 

今では動作します。もし誰かがこれを修正する方法を知っていたら、私はまだ答えを受け入れます、ありがとう!

関連する問題