none
Ajax でファイルをアップロード(HtmlEditorExtender)する方法を教えてください RRS feed

  • 質問

  • お世話になります。

    TinyMCEなど使って編集画像のアップロードをしようと思いましたが、他にも方法があるようなので教えてください。

    Ajax Control Toolkit を使用した HtmlEditorExtender と言うそうですが、教えてください。

    Ajaxは、ダウンロードしてインストールしました。

    プロパティで確認すると、

     バージョン 16.1.1.0

     ランタイムバージョン v4.0.30319

    です。

    2017年2月11日 13:01

回答

  • どこまで理解されているか分かりませんのでまた同じようなことを書きますが・・・

    > Everyoneにしてアクセス許可のレベルに書き込みを追加しないとコードが正しくてもうまくいかないって。

    運用環境で IIS 上で動かす場合は、画像を保存するフォルダに IIS の匿名アクセスのアカウント(デフォルトで IUSR)にアクセス権(読み取り)を与えてください。

    すでにそのフォルダには Users グループにアクセス権が設定されていれば、IUSR は Users グループに属するのでその必要はありません。

    ただし、SaveAs メソッドで保存すると、保存したファイルの ACL に Users がなくなるという問題があれば(そこが重要ですが調べましたか?)、先の私の 3 つの改善提案で書いたサンプルコードのように、SaveAs メソッドを使わないで保存する方法を取るなどの対策が必要です。

    たぶん、今使っている、

    c:\users\sl_101\documents\visual studio 2015\Projects\SlGroup\SlGroup\Images

    には、Users グループにアクセス権はないと思いますが、それで問題なく画像が表示されるとすると、今は IIS Express を使ってアプリを動かしているからではないかと思います。IIS では話が違ってきます。


    >> e.PostedUrl = fullpath; でもダメです。
    >
    > は、Server.MapPath()を代入することが失敗のようですね。

    img 要素の src 属性に設定するのを c:\users... のような物理パスにしてもダメと言っているのですが、そこは理解されてますか? ブラウザが src 属性に設定された画像を取得できなければダメです。

    そのためには、src="http://<ホスト名>/SIGroup/Images/sample.jpg" のように絶対 url または src="/SIGroup/Images/sample.jpg" のように相対 url にする必要があります。

    詳しくは以下の記事をよく読んでください。

    ASP.NET Web サイトのパス
    https://msdn.microsoft.com/ja-jp/library/ms178116(v=VS.100).aspx

    > 前回の投稿時に書いた「文字化け」のようになっていますが、これは文字化けではなく正しいコード変換
    > のようですね。理由はわかりませんが。

    前にも聞きましたが、その文字列はどのように取得して、どのように確認したのでしょう? 具体的に書いてください。そこが分からないと答えようがないです。

    自分の環境の v7.x の場合ですが、ボタンクリックで TextBox.Text の文字列は HTML エンコードされてからサーバーに送られます。なので、どこで、どのタイミングで、どのように取得するかによって違ってきます。

    • 回答としてマーク ferret001 2017年2月20日 23:54
    2017年2月17日 4:40

すべての返信

  • 質問者さんの前のスレッド(URL 下記)と関連があることを質問の最初に書いてください。

    TinyMCE4 でファイルをアップロードする方法
    https://social.msdn.microsoft.com/Forums/ja-JP/b4fbcd52-c332-4565-9a52-413b948b0327/tinymce4-?forum=aspnetja

    ここしか見てない回答者・閲覧者には話が通じにくいです。

    で、本題ですが、デモのソースコードが入手できるので、まずそれを見てください。質問者さんがダウンロードしたものにそれが含まれているかは分かりませんが、含まれていなければ以下のサイトからダウンロードできます。

    ASP.NET AJAX Control Toolkit - v16.1.1 - The Power of Continuous Integration
    https://community.devexpress.com/blogs/aspnet/archive/2016/08/11/asp-net-ajax-control-toolkit-v16-1-1-the-power-of-continuous-integration.aspx

    デモでは、アップロードされた画像ファイルを Session に保存してその情報を返す ⇒ エディタはその情報をもとにサーバーに要求を出す ⇒ サーバーはその要求を受けて Session から画像を取得してダウンロード ⇒ 画像がエディタ上に表示される・・・という操作をしているようです。

    そこを Session ではなくフォルダに保存するなり、質問者さんの目的に合うように手を入れれば目的が果たせるのではないかと思います。(未検証ですが)

    2017年2月12日 3:51
  • お世話になります。

    Ajaxの取り込み?などに手間取り遅くなりました。

    確認できたところまでいいますと、

    <%@ Page Title="HTMLEditorExtender Sample" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="HtmlEditorExtender.aspx.cs" Inherits="HtmlEditorExtender_HtmlEditorExtender" %>
    <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit.HtmlEditor.Sanitizer" TagPrefix="ajaxToolkit" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
    
        <asp:UpdatePanel ID="updatePanel1" runat="server">
            <ContentTemplate>
                <asp:TextBox runat="server" ID="txtBox1" TextMode="MultiLine" Columns="50" Rows="10" Text="Hello <b>world!</b>" ></asp:TextBox>
                <br />
                <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender1" TargetControlID="txtBox1" runat="server" DisplaySourceTab="true">
                </ajaxToolkit:HtmlEditorExtender>
                <br />
    
                <b>HtmlEditorExtender with a custom toolbar which includes support for uploading an image:</b>
                <br />
                <asp:TextBox runat="server" ID="txtBox2" TextMode="MultiLine" Columns="50" Rows="10" Text="Hello <b>world!</b>" ></asp:TextBox>
                <br />
                <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender2" TargetControlID="txtBox2" 
                    runat="server" DisplaySourceTab="True" OnImageUploadComplete="ajaxFileUpload_OnUploadComplete">
                    <Toolbar>
                        <ajaxToolkit:Bold />
                        <ajaxToolkit:Italic />
                        <ajaxToolkit:Underline />
                        <ajaxToolkit:HorizontalSeparator />
                        <ajaxToolkit:JustifyLeft />
                        <ajaxToolkit:JustifyCenter />
                        <ajaxToolkit:JustifyRight />
                        <ajaxToolkit:JustifyFull />
                        <ajaxToolkit:CreateLink />
                        <ajaxToolkit:UnLink />
                        <ajaxToolkit:InsertImage />
                    </Toolbar>
                </ajaxToolkit:HtmlEditorExtender>
                <br />
                <br />
            </ContentTemplate>
        </asp:UpdatePanel>
                <asp:Button runat="server" Text="Submit content" ID="submit" OnClick="btnsubmit_click" />
        <br />
        <br />
        <p>
            To see how to implement client side onchange event on HtmlEditorExtender see <a href="HtmlEditorExtenderCustomEvents.aspx">Custom events sample</a>
        </p>
    </asp:Content>

    さんぷるの必要個所を切り取り上記とし、ビハインド側は下記のです

    public partial class HtmlEditorExtender_HtmlEditorExtender : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["preview"] == "1" && !string.IsNullOrEmpty(Request.QueryString["fileId"]))
            {
                var fileId = Request.QueryString["fileId"];
                var fileContents = (byte[])Session["fileContents_" + fileId];
                var fileContentType = (string)Session["fileContentType_" + fileId];
    
                if (fileContents != null)
                {
                    Response.Clear();
                    Response.ContentType = fileContentType;
                    Response.BinaryWrite(fileContents);
                    Response.End();
                }
            }
        }
    
        protected void ajaxFileUpload_OnUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
        {
            if (e.ContentType.Contains("jpg") || e.ContentType.Contains("gif")
                || e.ContentType.Contains("png") || e.ContentType.Contains("jpeg"))
            {
                Session["fileContentType_" + e.FileId] = e.ContentType;
                Session["fileContents_" + e.FileId] = e.GetContents();
            }
    
            // Set PostedUrl to preview the uploaded file.         
            e.PostedUrl = string.Format("?preview=1&fileId={0}", e.FileId);
        }
        protected void btnsubmit_click(object sender, EventArgs e)
        {
            // Retrieve the html contents from htmleditor extender
            var htmlContents = System.Web.HttpUtility.HtmlDecode(txtBox2.Text);
        }

    です。しかし、txtBox2.Textがないと言ってきます。あるのに・・・

    asp:UpdatePanel内に配置されているからなのか?恐るべしAjax!  <= 現在ここで引っかかっています。

    あと、Web.configも変更しないと画像は取り込んでくれません。

      <system.web>
        <httpHandlers>
          <add verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>

    ですが、ここに書いてある
    <security>
          <requestFiltering>
            <requestLimits maxAllowedContentLength="4294967295"/>
          </requestFiltering>
        </security>
    を追加しようとしましたが、VS2015ではエラーになりました。追加していません。

      <system.webServer>
        <handlers>
            <add name="AjaxFileUploadHandler" verb="*" path="AjaxFileUploadHandler.axd" type="AjaxControlToolkit.AjaxFileUploadHandler, AjaxControlToolkit"/>

    AjaxFileUploadHandlerに関する2か所を追加します。

    すると編集領域内に画像が取り込まれます。ただし画像そのものをサーバなど公開時に適切な場所にアップする必要があるようです。(<=ここは現在、考え中)

    https://forums.asp.net/t/1914170.aspx?HtmlEditorExtender+image+upload+error

    を追加しました


    • 編集済み ferret001 2017年2月14日 1:21
    2017年2月14日 1:03
  • > すると編集領域内に画像が取り込まれます。

    であれば、デモとしての期待通りの動作をしているようです。あと一歩というところまで来ていると思います。

    > ただし画像そのものをサーバなど公開時に適切な場所にアップする必要があるようです。
    > (<=ここは現在、考え中)

    そこは、参考にした ASP.NET Forum の記事のコードのように SaveAs メソッドを使って Web アプリ下のどこかのフォルダに保存してはいかがですか? それは記事のコードのように 2 行でできます。

    問題はエディタにアップロードした画像を表示するところで、自分が v7.x で試した限りですが、e.PostedUrl に保存した画像の URL を設定しただけではうまくいきませんでした。(例えば、e.PostedUrl = "/images/sample.jpg" のようにすると、エディタ上の html ソースに <img src="/images/sample.jpg" ... /> という img 要素が生成されます)

    理由は、保存先のフォルダと SaveAs メソッドを使って保存したファイルの ACL が異なるという不可解なことになっていたからです。


    上の画像のように保存ファイルの ACL に Users グループがなく IIS の匿名アクセスの際のデフォルトのアカウント IUSR(Users に属する)にアクセス権がないので、<img src="/images/sample.jpg" ... /> ではダメです。

    v16.1.1 ではその辺りが改善されたかもしれませんので調べてみてください。


    • 編集済み SurferOnWww 2017年2月14日 9:22 誤記訂正
    • 回答としてマーク ferret001 2017年2月15日 1:32
    • 回答としてマークされていない ferret001 2017年2月16日 6:27
    2017年2月14日 9:19
  • お世話になります。

    > asp:UpdatePanel内に配置されているからなのか?恐るべしAjax!  <= 現在ここで引っかかっています。

    単なる勘違いで、新しくページを追加すれば解決しました。

    > ただし画像そのものをサーバなど公開時に適切な場所にアップする必要があるようです。(<=ここは現在、考え中)

    ここも勘違いのようで、ビハインドコードで指定する場所に保存できます。*印の3行を追加

    protected void ajaxFileUpload_OnUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
          if (e.ContentType.ToLower().Contains("jpg") || e.ContentType.ToLower().Contains("gif")
                   || e.ContentType.ToLower().Contains("png") || e.ContentType.ToLower().Contains("jpeg"))
          {
               Session["fileContentType_" + e.FileId] = e.ContentType;
               Session["fileContents_" + e.FileId] = e.GetContents();
          }
    
          string mei = e.FileName;
    
          //画像を作成する
     *     Bitmap bmp = new Bitmap(e.GetStreamContents());
     *     imagePath = Server.MapPath("Images");		// string で定義し存在を確認しておく
          // TODO:ファイルを保存"test.jpg"
     *     bmp.Save(imagePath + '\\' + mei, System.Drawing.Imaging.ImageFormat.Jpeg);
    
          // Set PostedUrl to preview the uploaded file.         
          e.PostedUrl = string.Format("?preview=1&fileId={0}", e.FileId);
    

    2017年2月15日 1:31
  • 3 点改善提案させてください。

    (1) デモのサンプルコードにあるように e.GetContents() メソッドでアップロードされたファイルのバイト列を取得できるので、File.Create(filePath) で FileStream を取得し、FileStream.Write メソッドでバイト列を書き込む方法をお勧めします。jpeg に限らずどんな形式のファイルでも保存可能になりますので。

    (2) e.PostedUrl にはアップロードして保存したファイルの url を設定してください。エディタなのですから、編集結果の html コードは <img src="/Images/filename.jpg" /> のように正しく url を指している必要があるはずです。

    質問者さんのコードはデモのサンプルのままのようですが、それでは <img src="?preview=1&fileId=..." /> となってしまいます。それでもデモでは画像が表示されるのは、src に設定された HtmlEditorExtender.aspx が呼ばれ、そのコードビハインドの Page_Load メソッドの if の条件が true になるので Response.BinaryWrite(fileContents) で Session に保存された画像データが送られるからです。

    (3) アップロードされたファイルは一旦テンポラリーフォルダに保存されますが、SaveAs メソッドを使わない場合それが消去されません。e.DeleteTemporaryData() で消去してください。

    以上 3 点を考慮したコードは以下の通りです。

    protected void ajaxFileUpload_OnUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
        // アップロードされたファイルはサイト直下の UploadedFiles に保存
        // ワーカープロセスに書き込み権限、Users グループに読み取り権限を与える
        string filePath = MapPath("~/UploadedFiles/" + e.FileName);
        if (File.Exists(filePath))
        {
            File.Delete(filePath);
        }
    
        using (FileStream fs = File.Create(filePath))
        {
            Byte[] data = e.GetContents();
            fs.Write(data, 0, data.Length);
        }
    
        // 設定するパスに注意。サイトでなくアプリケーションの場合は
        // アプリケーションのエイリアスもパスに追加する必要がある。
        e.PostedUrl = "/UploadedFiles/" + e.FileName;
        e.DeleteTemporaryData();
    }

    なお、上記 (2) によって Page_Load メソッドは不要になります。
    2017年2月15日 3:25
  • お世話になります。

    > SaveAs メソッドを使って

    以前の書き込みの上記が気になっていてもう少し調べていました。BMPのインスタンスを作成するしてもアップロードしたデータがどこかに残っているはずなので、削除などの操作が必要なんですね。

    で、SaveAsは下記のようにすればできることがわかりました。

    xxx.aspx 

    <ajaxToolkit:HtmlEditorExtender ID="htmlEditorExtender2" TargetControlID="TextBox2" ・・・

    protected void ajaxFileUpload_OnUploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {

    string fullpath = Server.MapPath("~/Images/") + e.FileName; htmlEditorExtender2.AjaxFileUpload.SaveAs(fullpath); e.PostedUrl = string.Format("<img src=\"{0}\" >", fullpath); // Page.ResolveUrl(fullpath)

    そして、

    > 編集結果の html コードは <img src="/Images/filename.jpg" /> のように正しく url をe.PostedUrl に上記の最後に指定していますが、デバッグで見ると上記代入時は正しいのですが、保存する段階でTextBox.Textからデータを取得しようとすると下記のように文字化けしています。

    もちろんアップロード後も絵は表示しません。エンコードのの問題?と思いましたが関係内容でした。結果変わらずだったので。

    この文字がe.PostedUrlに送り、<img src="c:\users\sl_101\documents\visual studio 2015\Projects\SlGroup\SlGroup\Images\shoppingbasket-001.png" >

    保存時にTextBox.Textから文字列をとると下記のようになってました。
    Hello <b>world!<img src='&#x26;lt&#x3B;img&#x20;src&#x3D;&#x26;quot&#x3B;c&#x3A;&#x5C;users&#x5C;sl&#x5F;101&#x5C;documents&#x5C;visual&#x20;studio&#x20;2015&#x5C;Projects&#x5C;SlGroup&#x5C;SlGroup&#x5C;Images&#x5C;shoppingbasket&#x2D;001&#x2E;png&#x26;quot&#x3B;&#x20;&#x26;gt&#x3B;'></b>

    どこで文字が変わっているのでしようか?

    2017年2月16日 5:43
  • 保存時にTextBox.Textから文字列をとると下記のようになってました。
    Hello <b>world!<img src='&#x26;lt&#x3B;img&#x20;src&#x3D;&#x26;quot&#x3B;c&#x3A;&#x5C;users&#x5C;sl&#x5F;101&#x5C;documents&#x5C;visual&#x20;studio&#x20;2015&#x5C;Projects&#x5C;SlGroup&#x5C;SlGroup&#x5C;Images&#x5C;shoppingbasket&#x2D;001&#x2E;png&#x26;quot&#x3B;&#x20;&#x26;gt&#x3B;'></b>

    これを HTML デコードすると
    Hello <b>world!<img src='&lt;img src=&quot;c:\users\sl_101\documents\visual studio 2015\Projects\SlGroup\SlGroup\Images\shoppingbasket-001.png&quot; &gt;'></b>
    になりますね。で、それをさらに HTML デコードすると
    Hello <b>world!<img src='<img src="c:\users\sl_101\documents\visual studio 2015\Projects\SlGroup\SlGroup\Images\shoppingbasket-001.png" >'></b>
    となります。Web アプリのパスとしては不自然ですね。


    どこで文字が変わっているのでしようか?

    「変わった」という質問の意図を理解できているか自信は無いですが:

    Hello world! がどこから来たのかはさておき、e.FileName には恐らく、『shoppingbasket-001.png』という文字列が渡されていたのでしょう。

    一方、 e.PostedUrl に渡すべきは、『/Images/shoppingbasket-001.png』などといった、URL を示す文字列になるべきですが、提示のコードはそうなっていないようです。

    最初の
    「string fullpath = Server.MapPath("~/Images/") + e.FileName;」
    により、サーバー上の物理パスに変換されます。具体的には、fullpath に保存される内容が
    c:\users\sl_101\documents\visual studio 2015\Projects\SlGroup\SlGroup\Images\shoppingbasket-001.png
    になるということです。

    その次の AjaxFileUpload.SaveAs は、文字化けとは直接関係無いと思いますので割愛。

    最後の 「string.Format("<img src=\"{0}\" >", fullpath);」では、Format メソッドにより
    <img src="c:\users\sl_101\documents\visual studio 2015\Projects\SlGroup\SlGroup\Images\shoppingbasket-001.png" >
    が生成され、それが e.PostedUrl に渡されています。

    URL を指定すべきところで HTML タグが渡されており、しかもそのパスが URL ではなくサーバー上のフルパスになっていることから、今回の文字列が表示されているのだと思いますが、回答になっているでしょうか。


    2017年2月16日 6:31
  • 質問者さんは私のレスの内容を理解されてますか? 特に 2 つ目のレスで書いたことが重要なのですが、大丈夫ですか?

    > で、SaveAsは下記のようにすればできることがわかりました。

    保存するだけなら SaveAs メソッドを使うのが簡単ですが、私の 2 つ目のレスで書いたように、保存フォルダと SaveAs メソッドで保存したファイルの ACL が違ってくるという問題がありました。

    私の環境(v16.1.1 ではなく v7.x 使用)の問題かもしれませんが、質問者さんの環境では問題はないのでしょうか?

    そもそも ACL の意味が理解できているでしょうか?

    ファイルの ACL に Users グループがないと何故問題なのか理解できているでしょうか?

    もし分からなければ聞いて理解してください。こちらは分かっているものとして話を進めてしまいますので、話が噛み合わなくなってきます。


    > e.PostedUrl = string.Format("<img src=\"{0}\" >", fullpath);

    そこも理解しないまま進めておられるようです。

    例えば、C# のコードで、

    e.PostedUrl = "...任意の文字列...";

    のように設定すると、結果の html コードは、

    <img src="...任意の文字列..." />

    となります。

    ところが、質問者さんの C# のコードでは結果の html コードは以下のようになってしまいます。img 要素として正しくないのは分かりますよね?

    <img src='<img src="...fullpath の文字列..." >'>

    e.PostedUrl = fullpath; でもダメです。なぜなら、fullpath の文字列は c:\users... というような物理パスになり、それを src 属性に設定しても意味がないからです。

    これも分からなければ聞いてください。


    > 保存する段階でTextBox.Textからデータを取得しようとすると下記のように文字化けしています。

    どのように取得して、どのように確認したのでしょう? 具体的に書いてください。

    2017年2月16日 7:52
  • お世話になります。

    > ACL の意味が理解できているでしょうか?

    ACLと言う言葉は知りませんでしたが、アクセス権なら知っているつもりです。

    とりあえず、Everyoneにしてアクセス許可のレベルに書き込みを追加しないとコードが正しくてもうまくいかないって。

    > e.PostedUrl = fullpath; でもダメです。

    は、Server.MapPath()を代入することが失敗のようですね。ネット上には、MapPathで取得した内容をResolveUrl()で変換?したものを転記するコードが多かったのでそれが正しいと思いましたが、調べてみるとチルダ'~'をhtmlタグに変換?使えるようにする機能のようですね。

    <img src=の部分は、e.PostedUrl にアドレス(パス)を代入することで<imgのタグが追加されるようです。

    今回の場合、e.PostedUrl  = "~/Images/" + e.FileName;で画像は表示されるようになりました。表示されているTextBox内の文字列に<img ・・・のタグも追加されています。ただ、前回の投稿時に書いた「文字化け」のようになっていますが、これは文字化けではなく正しいコード変換のようですね。理由はわかりませんが。

    e.PostedUrl についてググっていましたが、分かりやすい説明がなかったので、ネットに出ていたまま転記してみました。結果うまくいかないので、違うということのようです。ここには、絶対パスより相対パスならうまくいくようですね。

    開発環境内(localhost=自分のパソコン)なのでパスと言う考えが抜けなくて錯覚(いつもは、WinForm)があったのでしょう。

    2017年2月16日 23:31
  • どこまで理解されているか分かりませんのでまた同じようなことを書きますが・・・

    > Everyoneにしてアクセス許可のレベルに書き込みを追加しないとコードが正しくてもうまくいかないって。

    運用環境で IIS 上で動かす場合は、画像を保存するフォルダに IIS の匿名アクセスのアカウント(デフォルトで IUSR)にアクセス権(読み取り)を与えてください。

    すでにそのフォルダには Users グループにアクセス権が設定されていれば、IUSR は Users グループに属するのでその必要はありません。

    ただし、SaveAs メソッドで保存すると、保存したファイルの ACL に Users がなくなるという問題があれば(そこが重要ですが調べましたか?)、先の私の 3 つの改善提案で書いたサンプルコードのように、SaveAs メソッドを使わないで保存する方法を取るなどの対策が必要です。

    たぶん、今使っている、

    c:\users\sl_101\documents\visual studio 2015\Projects\SlGroup\SlGroup\Images

    には、Users グループにアクセス権はないと思いますが、それで問題なく画像が表示されるとすると、今は IIS Express を使ってアプリを動かしているからではないかと思います。IIS では話が違ってきます。


    >> e.PostedUrl = fullpath; でもダメです。
    >
    > は、Server.MapPath()を代入することが失敗のようですね。

    img 要素の src 属性に設定するのを c:\users... のような物理パスにしてもダメと言っているのですが、そこは理解されてますか? ブラウザが src 属性に設定された画像を取得できなければダメです。

    そのためには、src="http://<ホスト名>/SIGroup/Images/sample.jpg" のように絶対 url または src="/SIGroup/Images/sample.jpg" のように相対 url にする必要があります。

    詳しくは以下の記事をよく読んでください。

    ASP.NET Web サイトのパス
    https://msdn.microsoft.com/ja-jp/library/ms178116(v=VS.100).aspx

    > 前回の投稿時に書いた「文字化け」のようになっていますが、これは文字化けではなく正しいコード変換
    > のようですね。理由はわかりませんが。

    前にも聞きましたが、その文字列はどのように取得して、どのように確認したのでしょう? 具体的に書いてください。そこが分からないと答えようがないです。

    自分の環境の v7.x の場合ですが、ボタンクリックで TextBox.Text の文字列は HTML エンコードされてからサーバーに送られます。なので、どこで、どのタイミングで、どのように取得するかによって違ってきます。

    • 回答としてマーク ferret001 2017年2月20日 23:54
    2017年2月17日 4:40
  • お世話になります。

    返事が遅くなり申し訳ありません。

    ご指摘のACLに関する部分を実環境のIIS(社内)で試そうとしましたが、サーバーの.NETのバージョンを確認していなくて試すに時間がかかることになりました。

    開発環境は、VS2015なのでv4.5.xですが、サーバーはv3.5でした。開発環境をv3.5にするとIdentity2.0がコンパイルできないのでサーバーをアップするしかないのですが、社内的の確認で少し時間がかかりそうです。

    こちらの都合で申し訳ないのですが、一旦、このスレをクローズして

    > Users グループにアクセス権が・・・

    不明点などあれば、別スレを立てますので「もう一度教えていただければ」と思います。

    2017年2月20日 23:54