コンテンツへスキップ

AzureからAPNs配信 ブロブに保存した証明書を読み込む

2011年7月4日

Windows AzureからAPNs配信をするために、下記ライブラリを拝借しようと検討しています。

JdSoft.Apple.Apns.Notifications

https://github.com/Redth/APNS-Sharp

こちらのライブラリはAPNs配信に必要な.p12ファイル(プロビジョニングからダウンロードしてちょいと加工したやつ)をSystem.IO.File.ReadAllBytesで読み込む仕様です。

Windows Azure Driveを使用すればSystem.IO.Fileで取り扱えるわけですが、証明書ファイル一つのためにAzure Driveを作るのもどうかなと思い、今回はブロブに保存した証明書を読み込むようにカスタマイズしてみました。

JdSoft.Apple.Apns.NotificationsのNotificationChannelコンストラクタに System.IO.File.ReadAllBytes(p12File) で読み込んでいるオーバーロードがあるので、そこを自作のメソッドを使用するように変更します。

        public NotificationChannel(string host, int port, string p12File, string p12FilePassword)
: this(host, port, ReadP12AllBytes(p12File), p12FilePassword)
//    : this(host, port, System.IO.File.ReadAllBytes(p12File), p12FilePassword)
{
}

そして、ブロブを読み込んでバイト配列を戻す自作メソッドを作成します。

        static private byte[] ReadP12AllBytes(string blobAddress)
{
var account = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue(“DataConnectionString”));
var blobClient = account.CreateCloudBlobClient();
var blob = blobClient.GetBlobReference(blobAddress);
var source = blob.OpenRead();

途中までしか載せていませんが、続きは Reading all bytes from a Stream こちらのブログ記事にあるコードをそのまま使用しています。BlobStreamにReadAllBytesメソッドが備わっていれば楽だったんですけどね。

From → .NET, Apple, Azure

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。