2017-05-02 11 views
0

私はXamrineアプリケーションをバックエンドapiとしてサービスを使用してクライアント側からサーバーにプレーンテキストを送信するユーザーを認証するようにしています 次にユーザーを認証します。ここに必要なものは 最初にありますその私が、モバイルアプリで使用傾けるクッキーを生成し、ログインユーザーはので、どのようにログインすることなく、ユーザ使用servicestackアプリケーションを作ることができるときservicestackクライアント認証エンコードパスワード

public override void Configure(Container container) 
{ 
    Plugins.Add(new AuthFeature(() => new AuthUserSession(), 
     new IAuthProvider[] { 
     new BasicAuthProvider(), 
     new CredentialsAuthProvider(),credentials 
     })); 

    Plugins.Add(new RegistrationFeature()); 

    container.Register<ICacheClient>(new MemoryCacheClient()); 
    var userRep = new InMemoryAuthRepository(); 
    container.Register<IUserAuthRepository>(userRep); 

} 

にログイン、それが自己についての第二のものをservicestack.clientを使用して、クライアント側のパスワードを暗号化する方法毎回 ありがとうございました

答えて

0

パスワードを保証する標準的な方法は、すべてのトラフィックがhttps経由で送信されるようにSSLでバックエンドサービスを設定することです。

これに代わる方法は、ServiceStackのEncrypted Messaging featureを使用することです。

var ssId = client.GetSessionId(); 
var sspId = client.GetPermanentSessionId(); //If RememberMe=true 

以降で新しいサービスクライアント上でそれを添付:

client.SetSessionId(ssId); 
client.SetPermanentSessionId(sspId); 
あなたがで認証サービスクライアントからのCookieを保存することができ、あなたのセッションIDを使用してサービスクライアントを移入するために

+0

私たちは政府機関のクライアントと一緒に作業していますが、すでにSSLを使用していますが、パスワードがまだクライアントからサーバーに送信され、モバイルクライアントへの物理アクセスを許可するクリアテキストがデバイスをフェッチするため依頼st からフィドラーなど。 パスワードだけを暗号化して、暗号化されたメッセージングを使用せずにサーバー上で復号化するには、複雑さがあるためです。 –

+0

@moathnaji SSL/HTTPSを使用している場合は、定義どおりにクリアテキストとして送信されず、SSL証明書を持たないユーザーはトラフィックを読み取ることができません。これはHTTPトラフィックを暗号化するための確立された標準ですので、アドホックな別注のソリューションを探す代わりに、正しく設定することを検討することをお勧めします – mythz

関連する問題