gpt4 book ai didi

c# - Web 服务调用中的 "Impersonating" session

转载 作者:太空狗 更新时间:2023-10-29 20:40:25 27 4
gpt4 key购买 nike

我正在尝试编写一个返回 session 变量的网络服务。调用此 Web 服务的应用程序可以访问当前 session 的 session ID。

我尝试通过创建“ASPNet_SessionID”cookie 然后将其设置为代理类的 cookie 容器附加到 Web 服务来实现此目的,但这不起作用。我是这样做的,

 protected void CallService(string sessionID)
{
localhost.AuthService auths = new localhost.AuthService(); //Service Proxy class
System.Net.CookieContainer cookieJar = new System.Net.CookieContainer();


System.Net.Cookie newCookie = new System.Net.Cookie("ASPNet_SessionID", sessionID);
newCookie.Domain = "http://localhost";
cookieJar.Add(newCookie);
auths.CookieContainer = cookieJar;


string SessionData = auths.GetSessionData();

GetSessionData 网络方法简单地返回 session 数据,如下所示:

[WebMethod(EnableSession=true)]
public string GetSessionData(string sessionID) {return ((string)Session["user"]);}

这种方法应该有效,还是我做错了什么?

UPD:这个链接实际上解决了我的问题——我能够访问所有 InProc session ,并且能够通过 ID 选择正确的 session :

http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx

最佳答案

“我正在尝试启用第三方应用程序以查看哪些用户登录了我的网站。”

要实现此目标,您最好使用 ASP.NET Membership通过 Session 跟踪用户。

然后,要查看登录状态,您可以简单地执行以下操作:

bool isLoggedIn = Membership.GetUser("Joe.User").IsOnline;

关于c# - Web 服务调用中的 "Impersonating" session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6782625/

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