ハブからAddMessageメソッドを削除します。
これは本当にそれです。
ウェブからまだ機能が必要な場合は、チェックするために何らかの種類のセキュリティを設定する必要があります。 SingalRにはこれがまだ組み込まれていません。
または、ウェブの外部からしか必要としない場合(サーバーがイベントを公開しているとします)、ハブメソッドの外側がうまくいきます(ページ下部のハブの外部からのハブを介したブロードキャスト: https://github.com/SignalR/SignalR/wiki/Hubs)
もう1つの方法は、特定のアクションの開始時に認証を確認することです。あなたはクッキーにアクセスできます。しかし、私はそれを使用しないので、通常のメンバーシップシステムについてはわかりません。あなたはクッキーへのアクセス権を持っているので、ここで私が認証に使用していたパターンです:
public SomeHub : Hub
{
public void RandomAction()
{
if(!CheckCookie("Role Required"))
{
//In here we have what happens when there is
// a cookie that is associated with the right Role Required
}
}
}
あなたがCheckCookieのメンバーシップシステムを使用することができるかもしれない、しかし、これは役立つかもしれない:
string CookieName = "Website Authentication";
string vReturn = null;
HttpCookie vCookie = null;
if(HttpContext.Current.Request.Cookies.AllKeys.Any(t => t == CookieName))
vCookie = HttpContext.Current.Request.Cookies[CookieName];
if(vCookie != null)
vReturn = FormsAuthentication.Decrypt(vCookie.Value).Name;
return vReturn;
メンバーシップをクッキー名はそうではありません、それはただのフィラーです。
signalrを方程式から取り出し、webservice呼び出しのみを使用した場合、あなたは何をしますか? – davidfowl
@dfowlerあなたはこれを作成しました。あなたは "addMessage"が正しいのではないか、XSSできないことを知っていますか?誰かがJavaScriptを使って "addMessage"をやってしまうのを防ぐには、単にビューソースを作成して、それをつかんで、ベースタグをローカルに置いて、そこにスクリプトを入れます。私はいくつかのC#フラグがあるか、それを読み込み専用にするクラスに設定されていることを期待していました。 –
あなたはちょっと私の質問を無視しました。 – davidfowl