Visual Studio Onlineでgitを使用する

Visual Studio OnlineではMicrosoft独自のTeam Foundation Version ControlかOpen Sourceのgitを選択することができますが、gitを使用する場合には追加でパスワードの設定が必要です。
右上に表示されている自分の名前をクリックして、ドロップダウンメニューから「My Profile」を選択します。表示されるダイアログから「CREDENTIALS」を選択して、「Enable alternate credentials」をクリックします。「User name (secondary)」の右側にある「Edit」、「Password」の右側にある「Change」を栗㏍すいて、gitで使用したいユーザーIDとパスワードを設定します。
この時、設定するユーザーIDとパスワードはWindows Live IDで使用しているIDやpasswordとは別のものにしてください。
gitをhttp接続で使用する場合の認証手段はベーシック認証の選択肢がありませんから、Windows Live IDを使ったシングルサインオンに対応できません。また、残念なことに標準的なgitクライアントはベーシンク認証のユーザーIDとパスワードを平文で保存するため、パスワードの漏えいリスクが高いのです。そのためVisual Studio Onlineではgitで使用するユーザーIDとパスワードはWindows Live IDのユーザーIDやパスワードとは別に設定するように作られています。

ASP.NET MVCの標準ユーザー認証のDBを任意の場所に変更する

ASP.NET MVCの標準ユーザー認証機能の保存先データベースはApp_DataASPNETDB.MDFになっている。これを任意のデータベースに変更するためには、Visual Studio 2010のコマンドプロンプトを開いてaspnet_regsqlを実行してDBに必要なテーブルなどを作成した後、Web.configのconnectionStringsに書かれているApplicationServicesの接続文字列を変更すれば良い。
[C#] #27. フォーム認証によるユーザーの認証

VC++ .NET 2003でUACを有効にしたアプリケーションを作成する。

VC .NET 2003以前の開発環境はマニフェストを実行ファイルに埋め込む機能が、設定画面に用意されていません。そこで手動で作成したマニフェストをリソースとして埋め込む必要があります。
まずは以下のようにマニフェストファイルを作成します。赤字の部分がUACに関する部分です。requestedExecutionLevelのlevelにrequireAdministrator(管理者権限が必要)を指定すると、実行時にUACの画面が表示されます。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.WinSafeCleaner"
type="win32"
/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="true"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

これをRT_MANIFESTという名称のカスタムリソースの、リソース番号1として実行ファイルに埋め込みます。
参考資料
マニフェスト・ファイルをアプリケーションに組み込むには?

Windows Vista以降でサービスから画面を表示する

Windows VISTA以降のWindowsではセッション0分離の機能により、サービスから直接UIを表示することができなくなりました。Microsoftの互換性情報では代替手段として「ユーザーログイン時に常駐プロセスを起動しサービスと通信を行う。」「WTSSendMessage関数を使用してメッセージボックス相当の表示を行う。」「CreateProcessAsUserを使用してログインユーザー権限でアプリケーションを起動する。」の三つの方法が提示されています。ここでは最後の「CreateProcessAsUserを使用してログインユーザー権限でアプリケーションを起動する。」サンプルを提示します。
サービスから画面を表示するにはRemote Desktop Services APIを使用します。
WTSGetActiveConsoleSessionId関数で物理コンソールのセッションIDを取得します。
WTSQueryUserToken関数で取得したセッションIDのユーザートークンを取得します。
DuplicateTokenEx関数で取得したユーザートークンを複製し、プライマリトークンを作成します。
CreateEnvironmentBlockを使用してユーザーの環境変数を取得します。
CreateProcessAsUser関数を使用して画面を表示するプロセスを起動します。

BOOL    bRet(FALSE);
HANDLE  hUserToken(INVALID_HANDLE_VALUE);
if (::WTSQueryUserToken(WTSGetActiveConsoleSessionId(), &hUserToken))
{
    SECURITY_ATTRIBUTES sa;
    memset(&sa, 0x00, sizeof(sa));
    sa.nLength	= sizeof(SECURITY_ATTRIBUTES);
    HANDLE	hDupedToken(INVALID_HANDLE_VALUE);
    if (::DuplicateTokenEx(hUserToken, 0, &sa, SecurityIdentification, TokenPrimary, &hDupedToken))
    {
        PVOID	lpEnvironment(NULL);
        if (::CreateEnvironmentBlock(&lpEnvironment, hUserToken, FALSE))
        {
            STARTUPINFO stStartUpInfo;
            memset(&stStartUpInfo, 0, sizeof(STARTUPINFO));
            stStartUpInfo.cb        = sizeof(STARTUPINFO);
            stStartUpInfo.lpDesktop = _T("winsta0¥¥default");
            PROCESS_INFORMATION ProcessInfo;
            memset(&ProcessInfo, 0, sizeof(PROCESS_INFORMATION));
            ::CreateProcessAsUser(hDupedToken, _T(""), (char*)(const char*)strCmd, NULL, NULL
                    , FALSE, CREATE_UNICODE_ENVIRONMENT, lpEnvironment, NULL, &stStartUpInfo, &ProcessInfo);
        }
    }
}

Failed to create database ‘DevelopmentStorageDb20090919’

Windows Azureのアプリケーションをデバッグ実行しようとすると次のメッセージが表示される。

「Windows Azure Tools: Failed to initialize the Development Storage service. Unable to start Development Storage. Failed to start Development Storage: the SQL Server instance ‘localhostSQLExpress’ could not be found. Please configure the SQL Server instance for Development Storage using the ‘DSInit’ utility in the Windows Azure SDK.」

ローカルにインストーすしているSQLServerの接続設定で、リモート接続やWindows認証を無効にしている場合には、これを有効にしてからやり直す必要があります。また使用するSQL ServerがSQLEXPRESS以外の名称の場合にはC:\Program Files\Windows Azure SDK1.1\bin\devstore\DSInit.exeを実行して手動でAzure Data Storageの初期化をおこなう必要があります。
ですが手順に従って「DSInit.exe /SQLInstance:サービス名」としても以下のメッセージが表示される場合があります。

「Failed to create database ‘DevelopmentStorageDb20090919’ : SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 」

この場合には「DSInit.exe /SQLInstance:」とSQLInstanceオプションつきでサービス名を指定せずに実行してください。これでAzure Data Storageの初期化を行える場合があります。
どうもSQLServerのインストール後に、OSのコンピューター名などを変更している環境で、上記の問題が発生するようです。
参考:Visual Studio 2010 Problem: Windows Azure Tools: Failed to initialize the Development Storage service.

Error C2872: ‘IServiceProvider’: あいまいなシンボルです。

C++ CLRで記述したアプリケーションからCOMインターフェースを使用しようとすると「C2872: ‘IServiceProvider’: あいまいなシンボルです。」のコンパイルエラーが表示される。これは.NETのSystem.IServiceProviderとシンボルが重複しているのが原因です。
この問題を回避するには”using namespace System”よりも手前にヘッダファイルの#includeを記述します。