gpt4 book ai didi

wcf - 简单登录

转载 作者:行者123 更新时间:2023-12-01 10:14:11 24 4
gpt4 key购买 nike

我有一个像这样的 WCF 服务:

[ServiceContract( SessionMode=SessionMode.Required)]
public interface IService
{
[OperationContract(IsInitiating = true, IsTerminating = false)]
void login(string id);

[OperationContract(IsInitiating = false, IsTerminating = false)]
string getdata();
}



public class Service : IService
{
public void login(string hashedid)
{
if (username != "someusername" || password != "somepassword")
{
// can not get data
}
else
{
// can get data
}
}

public string getdata()
{
return "these are data";
}
}

如何编写方法登录并创建客户端应用程序?谢谢你。

最佳答案

[ServiceContract( SessionMode=SessionMode.Required)]
public interface IService
{
[OperationContract(IsInitiating = true, IsTerminating = false)]
void login(string username, string password);

[OperationContract(IsInitiating = false, IsTerminating = false)]
string getdata();
}



public class Service : IService
{
// todo: make threadsafe!
public static List<Guid> authenticated = new List<Guid>();

public void login(string username, string password)
{

if (username == "correctUsername" || password == "correctPassword")
{
// user has given correct username/pasword
Guid currentSessionId = OperationContext.Current.SessionId;

// note: can throw Exception when calling login twice or more, check if item exists first
authenticated.Add(currentSessionId);
}


}

public string getdata()
{
Guid currentSessionId = OperationContext.Current.SessionId;
if (List.Contains(currentSessionId)
{
return "these are data";
}

return String.Empty;
}
}

您可以通过当前 session ID 来识别 session 。用户正确验证后,您可以将此 session 添加到已验证 session 列表中。

注意:这只是一些伪代码。关闭 session 时应删除 session ID,我使用的列表不是线程安全的,...但我希望这可以帮助您进入正确的方向。

关于wcf - 简单登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2763384/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com