我正在尝试使用Slow Cheetah在本地数据库连接字符串和SQL Azure连接字符串之间切换.这是Azure工作者角色,我正在使用TeamCity推送到Azure.当我查看日志文件时,Slow Cheetah进程正在正常运行并且正在生成转换后的app.config,但未来的构建步骤(我认为我无法控制)是用原始app.config编写转换后的文件. .
有没有其他人用这种方法取得任何成功,或者你能指点我另一种方法来切换我的连接字符串.我被指向只使用一个连接字符串并编辑hosts文件指向我想要的数据库,但这看起来很混乱.
connection-string app-config azure azure-worker-roles slowcheetah
我希望能够检测用户何时使用被动ac登录我的应用程序,以便我可以将它们添加到我的数据库中,如果这是第一次使用我的应用程序.现在我正在订阅WSFederationAuthenticationModule.SignedIn,但我觉得我错过了什么.主要是我不确定订阅活动的最佳位置,我让它在PostAuthenticateRequest内部工作,但它有点hacky.有什么建议?
此代码来自global.asax
public override void Init()
{
base.Init();
PostAuthenticateRequest += (s, e) =>
{
try
{
FederatedAuthentication.WSFederationAuthenticationModule.SignedIn -= SignedIn;
}
finally
{
FederatedAuthentication.WSFederationAuthenticationModule.SignedIn += SignedIn;
}
};
}
private void SignedIn(object sender, EventArgs e)
{
//do something
}
Run Code Online (Sandbox Code Playgroud)
编辑:
现在我将使用一个标志变量来确保我只订阅一次SignedIn.除非有人有任何其他建议:)感谢Sandrino的帮助.这就是我现在所拥有的.
private static bool isFirstRequest = true;
public override void Init()
{
base.Init();
PostAuthenticateRequest += (s, e) => {
if (isFirstRequest)
{
FederatedAuthentication
.WSFederationAuthenticationModule.SignedIn += SignedIn;
isFirstRequest = false;
}
};
}
private void SignedIn(object sender, EventArgs e)
{
//do something …Run Code Online (Sandbox Code Playgroud)