Hallo
Ich habe für eine SSO-Auth. eine ASP seite aber anscheinend kommt SP07 damit nicht klar sondern nur ASPX.
Ist es so?
Danke.
in diesem forum ist erklärt worden wie man inline codes ausführen kann : http://social.msdn.microsoft.com/forums/en-US/sharepointdevelopment/thread/be7c0af8-b883-4193-a0b3-c12b269069ea/
ich versuche gerade "Dwarf Nebulas" beschreibung auszuführen indem ich meine default.master page erweitere mit der zeile
<%@ Register TagPrefix="mcb" TagName="DateTimeDisplay" Src="~/_controltemplates/DateTimeDisplay.ascx" %>
weißt du wieso ich eine 404 meldung bekomme sobald ich die default.masterpage ändere und die seite wieder einchecke über den designer???
ok ich komme immer näher :)
wieso wird in meinem aspx file mcb nicht akzeptiert ? fehler : unknown server tag mcb:DateTimeDisplay
<mcb:DateTimeDisplay id="DateTimeDisp" runat="server" />
Das sollte man tunlichst sein lassen (inline code erlauben)! Microsoft hat sich durchaus etwas dabei gedacht.
Und bei der geposteten Codezeile kann ich nichts bezüglich Masterpage erkennen. Kann es sein, daß Du etwas durcheinanderbringst?
Es gibt in SharePoint standardmäßig kein Control DateTimeDisplay.ascx
dann weiß ich leider nicht wie ich diesen asp code in aspx schreiben kann :////
Dim strTotalData Dim st Dim strNewDataList Dim strMD5SecureKey Dim strKeyFolder Dim fs Dim objFile Dim pubkey Dim trayUtil Dim i Dim userInfo Dim remoteIP Dim trayLoginIP Dim trayLoginTime Dim st2 Dim info Dim pos Dim infoKey Dim infoValue , strTotalData = Request.form("totaldata") st = split(strTotalData,";") strNewDataList = st(0) strMD5SecureKey = st(1) strKeyFolder = st(2) Set fs = Server.CreateObject("Scripting.FileSystemObject") Set objFile = fs.OpenTextFile("c:\\EpTray\\" + strKeyFolder + " \\mySingle_key",1 )
Dim strTotalData
Dim st
Dim strNewDataList
Dim strMD5SecureKey
Dim strKeyFolder
Dim fs
Dim objFile
Dim pubkey
Dim trayUtil
Dim i
Dim userInfo
Dim remoteIP
Dim trayLoginIP
Dim trayLoginTime
Dim st2
Dim info
Dim pos
Dim infoKey
Dim infoValue
,
strTotalData = Request.form("totaldata")
st = split(strTotalData,";")
strNewDataList = st(0)
strMD5SecureKey = st(1)
strKeyFolder = st(2)
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = fs.OpenTextFile("c:\\EpTray\\" + strKeyFolder + "
)
Irgendwsie geht in diesem Thread immer mehr durcheinander :S
1. Ich verstehe nicht, was es mit dem o.g. DateTime-Dingens auf sich hat.
2. In einer Application Page ist inline code durchaus erlaubt. Das kann also nicht das Problem sein.
3. Du verwendest im Code Scripting.FileSystemObject. Das ist ein uraltes COM-Objekt und evtl. ist das für die Probleme verantwortlich. In .NET würde man für sowas die Klassen aus System.IO verwenden.
das mit datetime war nur ein kleiner test was im forum beschrieben wurde wie man inline codes in SP ausführen kann.
ok du hast recht aber wieso bekomm ich dann von SP die meldung : Code blocks are not allowed in this file.
das ist doch ein grundlegendes problem und heisst soviel wie kein code ausgeführt werden kann sondern nur xml -format .
richtig oder falsch?
Dann ist es wohl immer noch keine "richtige" Application Page. Sie muß von Microsoft.SharePoint.WebControls.LayoutsPageBase oder einer davon abgeleiteten Klasse erben.
hi andi.
ich hab mein ziel fast erreicht :) also folgendes ...hab ein convertierungstool gefunden der mir 30T bereit steht ! hab mein ASP Code dadurch gejagt und als Output eine ASPX bekommen..allerdings wirft mir der converter einen error ! jetzt brauche ich deine hilfe :)
der converter sagt das in der Zeile 43 also bei "objFile = fs.OpenTextFile("c:\\EpTray\\" + strKeyFolder + "\\mySingle_key", 1)"
Invalid ProgId: 'EpTrayUtil.Util'
und Sharepoint sagt beim ausführen seite aspx seite : The aspcompat attribute on the page directive is not allowed in this page
ich kann mit den meldungen nicht viel anfangen :( kannst du mich bitte da nochmal unterstützen? vielen dank.
hier der ASPX output :
<%@ Page language="vb" aspcompat = true Explicit="True" Debug="true"%><%@ Import Namespace = "nce.scripting" %>
<html><head><META name="WebPartPageExpansion" content="full"></head><body>
<% Dim strTotalData As String Dim st As Object Dim strNewDataList As Object Dim strMD5SecureKey As Object Dim strKeyFolder As Object Dim fs As FileSystemObject Dim objFile As TextStream Dim pubkey As String Dim trayUtil As Object Dim i As Integer Dim userInfo As Object Dim remoteIP As String Dim trayLoginIP As String Dim trayLoginTime As Object Dim st2 As Object Dim info As String Dim pos As Integer Dim infoKey As String Dim infoValue As String %><% strTotalData = Request.Form("totaldata") st = Split(strTotalData, ";") strNewDataList = st(0) strMD5SecureKey = st(1) strKeyFolder = st(2) fs = new FileSystemObject() objFile = fs.OpenTextFile("c:\\EpTray\\" + strKeyFolder + "\\mySingle_key", 1) Do While objFile.AtEndOfStream <> true pubkey = pubkey + objFile.readLine() Loop objFile.Close() objFile = Nothing fs = Nothing trayUtil = Server.CreateObject("EpTrayUtil.Util") userInfo = trayUtil.DecryptDataList(pubkey, strMD5SecureKey, strNewDataList) trayUtil = Nothing Response.Write("User Info :<br>" + userInfo + "<BR><br>") trayLoginIP = "" trayLoginTime = "" st2 = Split(userInfo, ";") For i = 0 To UBound(st2) info = CStr(st2(i)) If info <> "" Then pos = InStr(info, "=") If pos > 0 Then infoKey = Left(info, pos - 1) infoValue = Mid(info, pos + 1) If infoKey = "EP_RETURNCODE" And infoValue = "0" Then Response.Write("LOGIN ERROR!!!!") Response.Write("<BR>") End IF If infoKey = "EP_LOGINIP" Then trayLoginIP = infoValue End IF If infoKey = "EP_LOGINTIMEFORMIS" Then trayLoginTime = infoValue 'YYYYMMDDhhmmss. End IF End IF End IF Next 'Check Login Time 'If you want to know user's first login time, you could use ep-logintimeformis. 'It depends on your security policy 'whether block or not when first login time was 12 hours before. 'Add 9 hours to GMT time so that it turns into KST time trayLoginTime = Convert.ToDateTime(Mid(trayLoginTime, 1, 4) + "-" + Mid(trayLoginTime, 5, 2) + "-" + Mid(trayLoginTime, 7, 2) + " " + Mid(trayLoginTime, 9, 2) + ":" + Mid(trayLoginTime, 11, 2) + ":" + Mid(trayLoginTime, 13, 2)) trayLoginTime = DateAdd("h", 9, Convert.ToDateTime(trayLoginTime)) Response.Write("<BR>TrayLoginTime : ") Response.Write(trayLoginTime) Response.Write("<BR>") Response.Write("System Time : ") Response.Write(Now()) Response.Write("<BR>") Response.Write("Time Elapsed : ") Response.Write(DateDiff("h", Convert.ToDateTime(trayLoginTime), Now())) Response.Write("<BR>") If DateDiff("h", Convert.ToDateTime(trayLoginTime), Now()) < 12 Then Response.Write("Login Time Check OK !!<BR><BR>") Else Response.Write("Login Time Out !!<BR><BR>") End IF 'Check IP remoteIP = Request.ServerVariables("remote_addr") Response.Write("Tray IP :" + trayLoginIP + "<BR>") Response.Write("Login IP :" + remoteIP + "<BR>") If remoteIP = trayLoginIP Then Response.Write("IP Check OK !!<BR>") Else Response.Write("IP Check Fail !!<BR>") End IF%>
</body></html>
donSharepoint:<%@ Page language="vb" aspcompat = true Explicit="True" Debug="true"%>
Die Meldung sagt klar, daß das aspcompat-Attribut nicht erlaubt ist.
donSharepoint:trayUtil = Server.CreateObject("EpTrayUtil.Util")
Damit wird versucht, ein COM-Objekt zu erzeugen und das wird entweder nicht gefunden oder der Account, unter dem der Code läuft (der Account des Application pool) hat dazu keine Rechte.
du sagtest :
ich bin eigentlich FARMAdmin auf dem System. Dazu sollte ich doch eigentlich die nötigen Rechte haben richtig?
Das ist etwas, das außerhalb von SharePoint geschieht, d.h. es braucht dazu entsprechende Rechte auf dem Windows Server (Systemsteuerung - Verwaltung - Komponentendienste).
Es kann auch sein, daß das Sicherheitsmodell von SharePoint, d.h. dessen Trust Level, sowas generell unterbindet. Man müßte das dann über Anpassungen der web.config passend konfigurieren - da kann ich Dir aber nicht weiterhelfen.
Edit: vielleicht wird auch tatsächlich das Objekt einfach nicht gefunden. Ist die dll denn ordentlich registriert (so daß sie in der Registry erscheint)? Das geht mit regsvr32 in einer DOS-Box.
welche dll meinst du genau? ich hab bei der konvertierung der asp2aspx eine dll datei mitgeliefert bekommen. den habe ich über regasm-befehl registriert. half aber auch nicht :(
`hab auch schon die web.config datei mit:
<PageParserPath VirtualPath="/Lists/Links/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true"/>
erweitert ! auch nix gebracht :(
Ich meine die COM-dll, die das EpTrayUtil-Objekt enthält, das mit CreateObject instanziert werden soll.