我有一项功能可以创建语音消息,如果通过Twitter进行身份验证,我会将消息发布到他们的Twitter帐户。我希望用户能够根据需要关闭发布到Twitter的消息,所以我很好奇是否有办法清除凭据。我跟随了LinqToTwitter文档中的一个例子:
IOAuthCredentials credentials = new SessionStateCredentials();
if (credentials.ConsumerKey == null || credentials.ConsumerSecret == null)
{
credentials.ConsumerKey = ConfigurationManager.AppSettings["twitterConsumerKey"];
credentials.ConsumerSecret = ConfigurationManager.AppSettings["twitterConsumerSecret"];
}
auth = new WebAuthorizer
{
Credentials = credentials,
PerformRedirect = authUrl => Response.Redirect(authUrl)
};
if (!Page.IsPostBack && Request.QueryString["oauth_token"] != null)
{
auth.CompleteAuthorization(Request.Url);
}
if (auth.IsAuthorized)
{
twitterCtx = new TwitterContext(auth);
Session["TwitterContext"] = twitterCtx;
twLoginButton.Text = "Logout of Twitter";
}
我尝试了以下代码和变体:
credentials = null;
或
SessionStateCredentials credentials = Dispose();
但它显示了每个错误。我希望有人可以指导我清理
IOAuthCredentials credentials = new SessionStateCredentials();
这是我认为需要发生的事情。任何建议将不胜感激。
答案 0 :(得分:2)
SessionStateCredentials类型具有使用会话状态作为其后备存储的属性。以下是一些选项,各有利弊:
将属性设置为null。 e.g。
credentials.ConsumerKey = null; credentials.ConsumerSecret = null; //等......
虽然你可以编写一个封装语句的方法,但这有点难看。
清除各个会话状态项。 e.g。
Session.Remove( “ConsumerKey”); Session.Remove( “ConsumerSecret”); //等......
这更明确。但是,它会破坏现有的封装并强制您获取对当前会话的引用。
这是SessionStateCredentials类的链接,因此您可以看到内部实现: