MVCアプリの上に(クラシック)Webサービスのみをホストする新しいasp.netプロジェクトを追加しました。
Webサービスは、BizLayerDllsにあるBizオブジェクトを呼び出します。
WebServiceクライアントは通常のユーザーと同じように、操作ごとに認証および承認される必要があります。
私はSOAP認証トークンを使用して、最初の呼び出しでユーザーを検証し、その後の呼び出しごとにそのトークンを渡します。
BizObjectsはIUserSessionManagerにアクセスして許可ユーザーを取得し、要求ごとに許可ユーザーを呼び出します。これは、BusinessObjectsの呼び出し元であるMVCアプリとWindowsアプリでは非常に簡単でした。では、BusinessObjectsがユーザー情報を取得できる次のシステムにユーザー情報を保存するにはどうすればよいですか。(これはあなたにとって簡単かもしれませんが、私はWebサービスでの作業に慣れていません)
public class XyzUserSessionManager
{
private static IXyzUserSessionManager _instance;
public static IXyzUserSessionManager UserSessionManager
{
get { return _instance; }
set { _instance = value; }
}
public static IXyzUserSession Current
{
get { return UserSessionManager.Current; }
}
}
public IXyzUserSession Current
{
get
{
if (HttpContext.Current == null || HttpContext.Current.Session == null || HttpContext.Current.Session[SessionKey] == null)
return null;
return (IXyzUserSession)HttpContext.Current.Session[SessionKey];
}
protected set
{
HttpContext.Current.Session[SessionKey] = value;
}
}