Брзо и едноставно: Обезбедување на веб сајт со употреба на Sharepoint Object Model Во C #

I tried searching for a little snippet code that would show how I can create a new SPWeb in a site collection. I didn’t find it as quickly or easily as I expected so I thought I’d slap together a little entry on the subject.

Овој код создава нова Вики сајт:

 SPSite siteCollection;

    siteCollection = нови SPSite("http://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy Title",
        "xyzzy description", 1033, SPWebTemplate.WebTemplateWIKI, лажни, лажни);

My initial searches failed because I was looking for phrases like "provision a web site using sharepoint object model" and the like.

Ако пребарување for "Webs.Add()", ќе најдете голем број на многу корисни блог записи, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend овој сајт.

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови:

Интегрираат SharePoint Designer workflows со веб-услуги

Сум бил поигрува со сопствени акции за SharePoint Designer за некое време (види тука за некои детални работи, ако тоа ве интересира).

Во мојот тековниот проект, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

Скратам приказната, this is entirely possible. I extended my Codeplex project to invoke a "helper service" and now we can invoke a web service directly from an SPD workflow.

Тука е потпис:

 јавноста низа Диспечер(
        Раководство WebID, // Усвоен од страна на траење на животната средина
        Раководство SiteID, // Усвоен од страна на траење на животната средина
        низа ListID, // Усвоен од страна на RTE (Не знам зошто ова е стринг, не Раководство)
        int ListItemID, // Усвоен од страна на RTE.
        низа XmlMessage) // Усвоен од страна на корисникот како што е најавено во СПД.

Ова Нотингем фактот дека ние може да се добие на важни работното информации, како сајт, листа проект, итн. This is well documented in several places for those of you interested in creating your own custom actions. The idea is to extract the XML string as provided by the user to dispatch an appropriate procedure. Fun stuff!

За жал, ова е очигледно билет во еден правец надолу за да "Loosey Goosey" анти-шема земјиште, but it’s better than hitting a brick wall 🙂

Е тоа е анти-шема ако го направи тоа, иако знаеш дека е анти-шема?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, дај ми го пушти (e-mail или оставете коментар) and I’ll be that more enthusiastic about doing it 🙂

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови: ,

Недела Смешни: “Се прашувам дали вашата лозинка е …”

Јас неодамна го купи ручек за брат ми (како и обично) and we ended up talking about funny things that we did at our respective colleges. At my alma mater, Lafayette College, the academic support IT department had a very inclusive way about it. We were given a LOT of rope and I took advantage of that at times.

Две моите омилени спомени се однесуваат на мојот добар пријател, Gabe. He had made the terrible mistake of telling people his freshman year that "I’m a freshman, но имам Сафомор стоење" се должи на различни напредни поставеност класи пивна, итн. Many of us were similarly situated but we didn’t talk about it so much. His senior year, кога го запозна со луѓе, we’d say "This is Gabe. He’s a Senior, but he has Sophomore standing".

The college had some Sun workstation/servers running X-Window. They had gigantic monitors and the engineers used them for CAD and other boring engineer stuff. We CS people used them to learn programming and, се разбира, да играат игри.

Ние не му се допадна на компјутерски беспомошни инженери да се многу, така еден од нашите омилени нешта да се направи ќе биде да телнет на кутијата тие беа на и да ја стартувате X-око on them. This would pop up a pair of eyes that followed the mouse around on the screen. You could pop up even more and have literally a dozen or more of the X-eye applications running. Обидете се да не се смеете на глас кога несреќен инженер се обидува да затвори Х-око по Х-око и мрмори под неговиот здив за тоа

We also played X-trek on those boxes. Да го направите тоа, ти мораше да го симнете изворниот, get various dependencies wherever you could find them and build it. I wasn’t a sophisticated C programmer, but I could read header files. I was looking through these and found directives like "#DEFINE MAX_TORPEDO_DISTANCE 10". I played around with that increase range and power for phases and torpedoes, повторно изградена него, а потоа уништија Габе следниот пат кога игравме.

Габе исто така беше голем фан на ТВ шоуто Блејк 7. I had never seen it, но тоа не ме спречи да инсистира на тоа дека д-р. Who is the superior show. Аргументите ќе се вжештеа на моменти

Еден ден, it occurred to me that I could probably guess his UNIX password. I sat down next to him one day and announced in a loud tone, "I’m going to guess your password right now, Gabe." "Yeah, право" was his answer. I then logged in, влезе во неговиот корисничко име, се сврте кон него се соочи, напишан и рече гласно, "I wonder if it’s B-L-A-K-E-7" ? Touch typing has never paid off as handsomely as it did that day.

Следна недела (или наскоро): More computer room antics from college.

Имате ли да го споделам? Leave a comment or email me and I’ll publish them here.

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови:

Мала Соопштение до јавноста: Windows Live поставки за безбедност и Контактирање простор Сопствениците

I receive a handful of messages from individuals via the built-in "send a message" функција Мајкрософт обезбедува со Live Spaces (кој исто така е домаќин на мојот блог) секој месец.

Околу една третина од времето, those users have secured their live spaces account such that I cannot reply. This is some kind of anti-spam feature I assume.

</крајот>

Едноставен Објаснување: “Вредност не спаѓаат во рамките на очекуваниот опсег.”

Ажурирање: An anonymous poster left a great comment about internal names. Be sure to read it.

Кога се работи со настанот приемници и други код кој референци SharePoint листа предмети преку објект модел, Јас често се прават грешки, кои произведуваат оваа грешка за време на извршувањето:

Грешка при вчитувањето и трчање настан приемник Conchango.xyzzyEventReceiver во xyzzy, Верзија = 1.0.0.0, Култура = неутрален, PublicKeyToken = 0dc50a750396c3ac. Additional information is below. : Value does not fall within the expected range.

I think this is a fairly generic error that is potentially caused many different ways. Сепак, one simple explanation is that I’m referencing a field incorrectly. If the name of the field is "Due Date", Морам да го референца како оваа во еден настан приемник:

properties.ListItem["Due Date"]

Кога ќе misspell или користат на погрешен случај кога референцирање на полето, SharePoint generates the above mentioned runtime error. На пример, ова е погрешно:

properties.ListItem["due Date"]

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови:

Крајниот корисник Брзо Совет: Вид Видено во една документ библиотека, Листа, итн.

Ние можеме да, и треба да се создаде многу пати во SharePoint листи (документ библиотеки, сопствени листи, итн). SharePoint always lists available views in alphabetical order. We cannot change this using out of the box functionality. If it can be done via customization (и јас не сум сигурен дека тоа може да), тоа е далеку со технички за вашиот типичен крајниот корисник.

Ако сакате да ја контролира редоследот по кој SharePoint листи на располагање пати, едноставно ставете пред некој број или писмо до поглед име, како и во:

1 – Од материјал Тип
2 – Сите Документи
3 – Поради Датум

-или-

А – Од материјал Тип
Б – Сите Документи
C – Поради Датум

I have also created views whose purpose is strictly to feed a KPI. I have been following this naming convention:

Z_KPI_[опис]

That causes my "KPI" пати да се појавуваат на дното од листата.

</крајот>

Да се ​​претплатите на мојот блог.

Недела Смешни: “Кога бев мало дете”

Како родител, некаде по должината на линијата го открив "Кога бев мало дете" trick.

Мојот син, веројатно четири или пет во времето, играв балон и како и повеќето мали момчиња што играат со балони, he popped it. He was very upset. The world had come to an end. I said to him, "when I was little boy, Имав балон и тоа појави и на крајот, I got a new balloon." It seemed to help him cope with his loss and led to a fun talk about what it was like when I was a little boy.

That worked well as a consolation technique and I used it a several times over the next period of time. I did get into trouble once when his Monster Rancher 3 creature died. I talked about how my dog, Принцот, had died in a car accident. Овој пат, Неговиот одговор беше, "Now I feel bad about two things!" I shied away from using the "when I was a little boy" техника за утеха после тоа.

Пред мртов пес инцидент, сепак, I had also started to use the technique to convince him to do chores. "When I was a little boy, I had to go out and get the newspaper", "clean my room", "get Mommy her coffee cup", итн.

Тоа исто така беше прилично успешна за време, but he started to increasingly rebel against the tyranny of my childhood. One event, особено, marked the end. I told him to bring the garbage cans from curb back to the garage. He argued and I responded, "When I was a little boy, I had to take the garbage back to the garage." He responded, "Oh yeah! Well when you were a little boy, кој беше глупаво!".

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови:

Ставови и Колони на листи и документ библиотеки не може да биде обезбедена

Ажурирање (02/29/08): Оваа нова CodePlex проект се чини да обезбеди метод за обезбедување на индивидуалните колони: http://www.codeplex.com/SPListDisplaySetting. If you have any experience working with it, Ве молиме оставете коментар.

Форум постери често прашам едно прашање вака: "I have a manager view and and a staff view of a list. How do I secure the manager view so that staff can not use it?"

Тие, исто така, често се прашуваат поврзани со прашањето: "I want to secure a specific metadata column so that only managers may edit that column while others may not even see it."

These answers apply to both WSS 3.0 и Мос:

  • SharePoint не обезбедува надвор од-the-box поддршка за обезбедување пати.
  • SharePoint не обезбедува надвор од-the-box поддршка за безбедносни колони.

There are several techniques one can follow to meet these kinds of security requirements. Here’s what I can think of:

  • Use out-of-the-box item level security. Views always honor item level security configuration. Event receivers and/or workflow can automate security assignment.
  • Use personal views for "privileged" views. These are easy enough to set up. Сепак, due to their "personal" природата, these need to be configured for each user. Use standard security configuration to prevent anyone else from creating a personal view.
  • Користите дата поглед веб дел и имплементира некој вид на AJAXy безбедност кастри решение.
  • Се тркалаат свој листа дисплеј функционалност и инкорпорирање безбедност кастрење на колона ниво.
  • Измени на внес на податоци форми и користете го вклучите Javascript во врска со безбедноста модел за спроведување на колона на ниво на безбедност кастрење.
  • Use an InfoPath form for data entry. Implement column-level security trimming via web service calls to SharePoint and conditionally hide fields as needed.
  • Се тркалаат свој ASP.NET податоци влез функција која спроведува колона ниво на безбедност кастрење.

Ниту еден од тие опции се навистина толку голема, но постои барем да го следат патот ако треба да се, дури и ако тоа е тешко.

ЗАБЕЛЕШКА: Ако одите надолу било кој од овие патишта, don’t forget about "Actions -> Open with Windows Explorer". You want to be sure that you test with that feature to make sure that it doesn’t work as a "back door" и пораз безбедност шема.

Ако имате други идеи за или искуства со обезбедување на колони или пати, ве молиме е-мејл мене или оставете коментар и јас ќе се ажурира оваа вест како што е соодветно.

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови:

Брзо Совет: ЦРБ ADF верзија броеви Дали Вашиот пријател

Ако сте рака-кодирање ADF датотеки и прават многу на код / ​​увоз / тест циклуси, use the version number to make your life easier.

Јас мразам да го признаат тоа, но до оваа недела, I was always deleting the ADF and re-importing it. This would break my business data columns and make me re-wire them. All unnecessary.

File this under "it’s obvious once you see it".

Пример:

<LobSystem
xmlns:Xsi="HTTP://www.w3.org/2001/XMLSchema-instance" Xsi:schemaLocation="HTTP://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Тип="WebService" Верзија="1.2.0.0" Името="xyzzyDocumentReview" xmlns="HTTP://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

Промена таа верзија и ре-увоз и постоечките деловни податоци колона користи ажурирана верзија автоматски без дополнителни конфигурација бара.

</крајот>

Да се ​​претплатите на мојот блог.

Technorati Тагови:

Решение: ЦРБ берач покажува само една колона на резултатите

Во мојот он-ќе обиди за обезбедување на повеќе корисни пребарување колона користење ЦРБ, I hit a wall with the BDC picker. If you haven’t see it, the BDC picker is similar to a people picker except that it works with columns of type "business data".

Ќе пристапите до берач со кликнување на отворена книга иконата на бизнис податоци колона како што е прикажано:

сликата

The above image shows a business data column called "Master Document Id". That column is connected, преку ЦРБ, to a web service. The web service returns two columns of information: Document ID and Title. The business purpose here is to provide a "this document is based on" функција. Users select a "master" документ и кога тие спаси, настан приемник копии мета податоци полиња од референцирани господар.

Од стандардните, the BDC picker looks like this when I search for a document whose ID = "38":

clip_image002

Тоа е корисно, but not good enough. People don’t think in terms of IDs, they think in terms of titles and/or other meta data. The picker allows you to search on other columns (e.g. Наслов) но не ќе покаже вистинската листата на наслови го нашол, само нивните DocId е како што е прикажано тука:

clip_image002[1]

(На екранот не е толку голема, бидејќи јас не ги собереш пребарување дека се враќа било какви валидни резултати, но може да се види дека ако го нашол некои резултати, тоа само ќе ја покажаа DocId е, не титули).

I searched high and low for the answer to this and failed. Мојот колега, на преподобниот Џонатан Бредшо, had faced and solved this issue. When I reached out to him for help, тој ми истакна во вистинската насока.

Configure the picker to show multiple columns via the "ShowInPicker" имотот во ADF:

<Сопственост Името="ShowInPicker" Тип="System.Boolean">вистина</Сопственост>

Во повеќе детали:

  <!-- Наслов -->
  <TypeDescriptor TypeName="System.String" Името="Наслов" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Наслов</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Својства>
      <Сопственост Името="DisplayByDefault" Тип="System.Boolean">вистина</Сопственост>
      <Сопственост Името="ShowInPicker" Тип="System.Boolean">вистина</Сопственост>
    </Својства>
  </TypeDescriptor>

Setting this property does introduce a minor problem. As soon as you set it once, you need to set it for every column you want to show. Во мојот случај, BDC picker showed DocId by default. Сепак, once I added "ShowInPicker" да Наслов, DocId no longer displayed. I solved that by explicitly setting the ShowInPicker property for Doc ID.

Тука е резултат:

сликата

(I’ll explain the odd-looking "168 – CamlSchema.xsd" construction in a future blog post. На кратко, тоа е concatenated стринг кој овозможува малку подобро корисничко искуство).

Се разбира, ја напишав овој блог запис, I just did a search for "ShowInPicker" и најдоа бројни хитови, вклучувајќи го и овој: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</крајот>

Да се ​​претплатите на мојот блог!

Technorati Тагови: