2009-03-26 8 views
0

OK誰かがログインしていない私たちのサイトにアクセスすると、ログインページにプッシュしてログインし、アクセスしようとしたページにプッシュバックします。私はXMLを介してレポートデータを返すサービス(ASHXを使用)を作成する任務を受けています。これはすべて完了ですが、ログインする必要があります。ログインするのではなく、有効なリクエストであることを認証するために、クエリ文字列を使用してトークンを渡すようにします。しかし、私は強制的なログインをバイパスする方法については不明です。これはあまりにも漠然としているのですか?私は最後の溝の努力はISSに完全に別のサイトを作ることだと思いますが、可能ならばそれを避けたいと思います。トークン認証サービスの強制ログインをバイパスするにはどうすればよいですか?

答えて

1

同じサイトでそれを行う1つの方法は、サービスを匿名でアクセスできるようにすることです。トークンに対してサービス内で独自の認証を行います。

編集:

、匿名の許可あなたのサービスが含まれているディレクトリへのフルアクセスを可能にするあなたのweb.configファイルにセクションを追加します。たとえば、あなたのサービスがhttp://www.foo.com/Services/bar.asmx ..ですあなたの他の認可のセクションがどこにあるか、あなたのweb.configファイルにこれを追加します。次に

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

、あなたのサービスでは、あなたがしたいしかし、渡されたてきたトークンを認証します。認証が成功しない場合は、SoapExceptionをスローします。すべての認証方法は、現在ログインページでどのように認証されているかによって異なります。

+0

素晴らしいとは言えますが、私はそれをどのように正確に設定しますか?それはIISでですか? – BigOmega

0

詳細については、リファラーまたはURLを確認するためにログインページを変更してください。

これが検出された場合、自動的に設定したこのユーザーを認証します。

例:

// In your signin aspx file 
bool bYourCriteriaIsMet = true; // do something here like check the referrer or querystring etc.."; 
if (bYourCriteriaIsMet) 
{ 
    FormsAuthentication.RedirectFromLoginPage("Your Temp User Name", false); 
} 

リダイレクトを確認してから手動で行う必要があるかどうかを確認します。

ログインページが存在する場所など、NONのセキュリティで保護された領域にアクセスしたいページを置くだけで、誰でもこのリダイレクトや認証のことを心配することなくアクセスできます。

関連する問題